我有两个文件file1
和file2
,每行内部都有不同的数据,并希望将file2
中的每一行添加到{{1}中每一行的末尾}}。
像这样:
file1包含:
file1
file2包含:
1
2
3
结果必须是:
a
b
c
无法使用1 a
2 b
3 c
命令:(仅限 - paste
,sed
,awk
,cat
。有任何建议吗?
答案 0 :(得分:2)
这可能适合你(GNU sed):
sed 'R file2' file1 | sed 'N;s/\n/ /' > file3
这使用了两次sed调用。第一行将file2的每一行追加到file1的每一行。第二种:一次读取两行,并用空格替换它们之间的换行符。
答案 1 :(得分:1)
$ awk 'NR==FNR {a[NR]=$0; next} {print a[FNR], $0}' file1 file2
1 a
2 b
3 c
答案 2 :(得分:1)
粘贴是正确的工具,上面的两个解决方案可能更有效。我只想添加一个"纯粹的bash"版本:
$ while read r1 <&3 && read r2 <&4 ; do echo "$r1 $r2" >> out ; done 3<file1 4<file2
答案 3 :(得分:0)
cat
与pr
$ cat file1 file2 | pr -2ts' '
1 a
2 b
3 c
答案 4 :(得分:0)
awk解决方案,为file1
的下一行file2
的每一行读取,然后打印它们:
awk '{getline var < "file2"; print $0, var}' file1