之间匹配两个字段,试图将字段1,3与另一个文件中的字段1,2和第二个文件的打印行匹配。第一个文件是制表符分隔,第二个文件是csv分隔符。意外的令牌错误?
文件1在两个文件AWK
1 x 12345 x x x
文件2
1,12345,x,x,x
脚本
awk -F',' FNR==NR{a[$1]=$1,$3; next} ($1,$2 in a) {print}' file1 file2 > output.txt
之间匹配两个字段,试图将字段1,3与另一个文件中的字段1,2和第二个文件的打印行匹配。第一个文件是制表符分隔,第二个文件是csv分隔符。意外的令牌错误?
文件1在两个文件AWK
1 x 12345 x x x
文件2
1,12345,x,x,x
脚本
awk -F',' FNR==NR{a[$1]=$1,$3; next} ($1,$2 in a) {print}' file1 file2 > output.txt
你几乎钉吧!
awk 'NR==FNR{first[$1]=$3;next} $1 in first{if(first[$1]==$2){print}}' file1 FS="," file2
输出
1,12345,x,x,x
注意
FS的切换为优等。 ;) –
我借用了[\ [this \]](http://stackoverflow.com/a/24517482/1620779)答案。 – sjsam
仍然有问题...我需要添加-F','参数吗? – mxttgen31