我有两个文件,我使用下面的代码将它们基于密钥合并
file1
-------------------------------
1 a t p bbb
2 b c f aaa
3 d y u bbb
2 b c f aaa
2 u g t ccc
2 b j h ccc
file2
--------------------------------
1 11 bbb
2 22 ccc
3 33 aaa
4 44 aaa
我使用下面的代码合并了这两个基于文件的密钥
awk 'NR==FNR{a[$3]=$0;next;}{for(x in a){if(x==$5) print $1,$2,$3,$4,a[x]};
我的问题是如何在变量或数组中保存 $2 的 file2 并在 a[x] 之后再次打印。
我想要的结果是:
1 a t p 1 11 bbb 11
2 b c f 3 33 aaa 33
2 b c f 4 44 aaa 44
3 d y u 1 11 bbb 11
2 b c f 3 33 aaa 33
2 b c f 4 44 aaa 44
2 u g t 2 22 ccc 22
2 b j h 2 22 ccc 22
如您所见,前 7 列是我的合并代码的结果。我需要将最后一列(a[x] 的字段 2)添加到我的结果中。
重要的:
我的下一个问题是如果我有 .awk 文件,我如何使用一些 bash 脚本代码(如(| column -t
)或将结果发送到文件(awk... > result.txt
)?我总是在命令提示符下使用这些代码。我可以在 .awk 文件的代码中使用它们吗?