如何逐行合并两个文件的数据?

如何逐行合并两个文件的数据?

我有两个文件,想逐行合并数据。输入文件是file.txt和file2.txt。

file1.txt

howareu
abc
zooo

file2.txt

123
@@
099

我想合并这两个文件,这样输出将是:

output.txt

howareu123
howareu@@
howareu0999
abc123
abc@@
abc0999
zooo123
zooo@@
zooo0999

有办法吗?有没有办法使用sedpaste命令来获取结果?

答案1

通常有一些优雅的方法来完成任务,但你可能要花更多的时间去寻找它,而不仅仅是暴力破解。不使用 sed 或 paste(只使用 shell 内置命令):

#!/bin/bash
while read line1
do
  while read line2
  do
    echo ${line1}${line2}
  done <file2.txt
done <file1.txt

答案2

只要file2.txt不是太大,我建议使用 awk:

$ awk 'NR==FNR {a[FNR] = $0; next} {for(i=1;i in a;i++) print $0 a[i]}' file2.txt file1.txt
howareu123
howareu@@
howareu099
abc123
abc@@
abc099
zooo123
zooo@@
zooo099

相关内容