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适用于已排序的文件,但现在我改进了我的答案!!!也谢谢你:)