Unix的多个字段加入两个文件 [英] Unix join on multiple fields on two files
本文介绍了Unix的多个字段加入两个文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个文件
猫test1.txt的
1 | 2 | 3 | 42 | 3 | 4 | 43 | 4 | 5 | 5
猫的test2.txt
1 | 2 | 4 | 52 | 3 | 5 | 63 | 5 | 7 | 7
我的输出应为
1 | 2 | 3 | 4 | 4 | 52 | 3 | 4 | 4 | 5 | 6
这就像从文件1和3,4的字段1和2加入两个文件,并得到1,2,3,4的值,从文件2。
请帮我这个?
解决方案
的awk -F \\ | 'NR == FNR {
F2 [$ 1,$ 2] = $ 3 OFS $ 4个
下一个
}
($ 1,$ 2)F2 {
打印$ 0时,F2 [$ 1,$ 2]
}'OFS = \\ |的test2.txt test1.txt的
I have a two files
cat test1.txt
1|2|3|4
2|3|4|4
3|4|5|5
cat test2.txt
1|2|4|5
2|3|5|6
3|5|7|7
My output should be
1|2|3|4|4|5
2|3|4|4|5|6
Its like joining two files on fields 1 and 2 and get the values of 1,2,3,4 from file 1 and 3,4, from file 2.
Please help me with this?
解决方案
awk -F\| 'NR == FNR {
f2[$1, $2] = $3 OFS $4
next
}
($1, $2) in f2 {
print $0, f2[$1, $2]
}' OFS=\| test2.txt test1.txt
这篇关于Unix的多个字段加入两个文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文