2015-03-05 2 views
1

Я хотел бы объединить два файла и создать новый файл с помощью команды Linux.Создание файла путем слияния двух файлов

У меня есть два файла с именем, как a1b.txt и a1c.txt

Содержание a1b.txt

Hi,Hi,Hi 
How,are,you 

Содержание a1c.txt

Hadoop|are|world 
Data|Big|God 

И мне нужно новый файл с именем merged.txt с содержимым ниже (ожидаемый результат)

Hi,Hi,Hi 
How,are,you 
Hadoop|are|world 
Data|Big|God 

Для достижения этой цели в терминале я бегу ниже команду, но это дает мне выход, как показано ниже

Hi,Hi,Hi 
How,are,youHadoop|are|world 
Data|Big|God 


cat /home/cloudera/inputfiles/a1* > merged.txt 

Может кто-нибудь помочь в получении ожидаемого Ouput

+0

ваши команды ..works для меня на баш. –

+0

Но мне нужна каждая строка, попадающая в новую свежую строку. Но я получаю, что последняя строка a1b.txt и первая строка a1c.txt падают в одну строку, которую я не хочу. –

+0

Этого не происходит, когда я запускаю эти команды. Какую оболочку вы используете? –

ответ

2

Возможно ваши файлы не имеют символы новой строки. Вот как поставить для них символ новой строки.

$ sed -i -e '$a\' /home/cloudera/inputfiles/a1* 
$ cat /home/cloudera/inputfiles/a1* > merged.txt 
+2

В частности, * самая последняя строка * в каждом из ваших файлов отсутствует завершающий символ новой строки. Это обычная проблема с файлами, созданными с редакторами, которые ошибочно считают, что '' \ n'' является разделителем строки * вместо строки * terminator *. – zwol

+0

Исправить. Благодарю. Я исправил и это –

0

Если вы имеете право быть разрушительными (не должны сохранить исходные два файла немодифицированного) затем:

[email protected]:/tmp$ cat fileB.txt >> fileA.txt

[email protected]:/tmp$ cat fileA.txt this is file A This is file B.

Смежные вопросы