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

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

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

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

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

在Bash中如何做到这一点?

171095 次浏览

你可以使用paste:

paste file1.txt file2.txt > fileresults.txt

检查

man paste

后面可能跟一些命令,如untabifytabs2spaces

这里是非粘贴方法

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<&-

尝试后。

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

如果要合并和分离文件中的两个文本,可以使用带分隔符选项的粘贴

paste -d "," source_file1 source_file2 > destination_file

不指定分隔符将使用Tab分隔符合并两个文本文件

paste source_file1 source_file2 > destination_file