尝试将字段1,3匹配到另一个文件中的字段1,2并打印第二个文件的行。第一个文件是制表符分隔的,第二个是csv分隔的。意外的令牌错误?
文件1
1 x 12345 x x x
file2的
1,12345,x,x,x
脚本
awk -F',' FNR==NR{a[$1]=$1,$3; next} ($1,$2 in a) {print}' file1 file2 > output.txt
答案 0 :(得分:3)
相同的想法,但不依赖于第一个字段的唯一性,而是取决于该对
$ awk 'NR==FNR{a[$1,$3]; next} ($1,$2) in a' file1 FS=, file2
1,12345,x,x,x
答案 1 :(得分:1)
你几乎钉了它!
awk 'NR==FNR{first[$1]=$3;next} $1 in first{if(first[$1]==$2){print}}' file1 FS="," file2
<强>输出强>
1,12345,x,x,x
备注强>
请参阅文件之间的[ switching field separator ]。