Как объединить два файла построчно в Bash - PullRequest
153 голосов
/ 27 сентября 2010

У меня есть два текстовых файла, каждый из которых содержит такую ​​информацию, как эта

file1.txt            file2.txt
----------           ---------
linef11              linef21
linef12              linef22
linef13              linef23
 .                    .
 .                    .
 .                    .

Я бы хотел объединить строки этих файлов по строкам, используя скрипт bash, чтобы получить:

fileresult.txt
--------------
linef11     linef21
linef12     linef22
linef13     linef23
 .           .
 .           .
 .           .

Как это можно сделать в Bash?

Ответы [ 4 ]

237 голосов
/ 27 сентября 2010

Вы можете использовать paste:

paste file1.txt file2.txt > fileresults.txt
19 голосов
/ 28 сентября 2010

вот методы без вставки

awk

awk 'BEGIN {OFS=" "}{
  getline line < "file2"
  print $0,line
} ' file1

Bash

exec 6<"file2"
while read -r line
do
    read -r f2line <&6
    echo "${line}${f2line}"
done <"file1"
exec 6<&-
10 голосов
/ 01 февраля 2013

Попробуйте следующее.

pr -tmJ a.txt b.txt > c.txt
8 голосов
/ 27 сентября 2010

Проверка

man paste

возможно, сопровождаемый некоторой командой как untabify или tabs2spaces

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...