如果我有以下内容:
档案1
1 a qpqp
2 b qpqp
3 c qpqp
文件2
1 a xkcd
2 b xkcd
3 d xkcd
我想加入第1列和第2列匹配的两个文件,然后并排打印输出。即。
1 a qpqp 1 a xkcd
2 b qpqp 2 b xkcd
我可以使用
打印第一个文件列awk 'NR==FNR{a[$1,$2]=$3;next} ($1,$2) in a{print $0, a[$1,$2]}' file1.txt file2.txt
但正如我所提到的,我想打印两个表中的列。谢谢!
extra info
- 文件不会事先排序(花费太长时间),文件2比文件1大。
答案 0 :(得分:2)
在awk中:
$ awk 'NR==FNR{a[$1 FS $2]=$0;next} (($1 FS $2) in a) {print a[$1 FS $2],$0}' file1 file2
1 a qpqp 1 a xkcd
2 b qpqp 2 b xkcd