我有两个文件,想逐行合并数据。输入文件是file.txt和file2.txt。
file1.txt
howareu
abc
zooo
file2.txt
123
@@
099
我想合并这两个文件,这样输出将是:
output.txt
howareu123
howareu@@
howareu0999
abc123
abc@@
abc0999
zooo123
zooo@@
zooo0999
有办法吗?有没有办法使用sed
或paste
命令来获取结果?
答案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