Awk 如何组合文件
我有两个文件 第一个文件:Awk 如何组合文件,awk,Awk,我有两个文件 第一个文件: 45 76 77 23 12 93 77 10 82 92 第二个文件: 89 37 84 10 93 我想将它们合并到一个文件中 像这样 89 45 76 37 77 23 84 12 93 10 77 10 93 82 92 您可以尝试以下方法:- $ join file1.txt file2.txt 如果文件未排序,请尝试以下操作: $ paste file2.txt file1.txt 用粘贴: $ paste file
45 76
77 23
12 93
77 10
82 92
第二个文件:
89
37
84
10
93
我想将它们合并到一个文件中
像这样
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
您可以尝试以下方法:-
$ join file1.txt file2.txt
如果文件未排序,请尝试以下操作:
$ paste file2.txt file1.txt
用
粘贴:
$ paste file2 file1
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
使用pr
:
$ pr -mts' ' file2 file1
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
使用awk
:
$ awk 'NR==FNR{a[NR]=$0;next}{print a[FNR],$0}' OFS=' ' file2 file1
89 45 76
37 77 23
84 12 93
10 77 10
93 82 92
paste
是解决此问题的标准工具。这里有一个纯bash的替代方案
while IFS= read -r -u 3 line1 && IFS= read -r -u 4 line2;
do
printf "%s %s\n" "$line2" "$line1";
done 3<first 4<second
而IFS=read-r-u3行1&&IFS=read-r-u4行2;
做
printf“%s%s\n”$line2“$line1”;
完成3连接需要对文件进行排序。@sudo\u O:-是的,我明白你的意思。那么,粘贴可能是一个不错的选择:)@sudo_O:-是的,我同意join适用于已排序的文件,但现在我改进了我的答案!!!也谢谢你:)