如何在Bash中逐行合并两个文件

时间:2010-09-27 18:55:46

标签: bash unix

我有两个文本文件,每个文件都包含一行信息,如

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

我想使用bash脚本逐行合并这些文件,以获得:

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

如何在Bash中完成?

4 个答案:

答案 0 :(得分:233)

您可以使用paste

paste file1.txt file2.txt > fileresults.txt

答案 1 :(得分:19)

这里是非粘贴方法

AWK

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

exec 6<"file2"
while read -r line
do
    read -r f2line <&6
    echo "${line}${f2line}"
done <"file1"
exec 6<&-

答案 2 :(得分:10)

试试以下内容。

pr -tmJ a.txt b.txt > c.txt

答案 3 :(得分:8)

检查

man paste

可能后跟一些命令,如untabifytabs2spaces