我有两个文件。文件1有16列,带分隔符“,”,文件2有约40列,分隔符为“ tab”。 我想比较两个文件。如果文件1的1,2,3,4列与1,2,4,5 0f file2列相同,则输出文件包含file2的所有信息和文件1的对应column16。
文件1: enter image description here
file2: enter image description here
awk 'BEGIN {OFS="/t"} NR==FNR{FS=",";a[$1,$2,$3,$4];b[$1,$2,$3,$4]=$16}{FS="/t";if (($1,$2,$4,$5) in a) print $0,b[$1,$2,$4,$5]}' <(sort -k2 file1) <(sort -k2 file2) >output
答案 0 :(得分:0)
这应该有效。
$ awk 'NR==FNR {a[$1,$2,$3,$4]=$16; next}
($1,$2,$4,$5) in a {print $0,a[$1,$2,$4,$5]}' FS=, file1 FS='\t' file2
无需对文件进行预排序。