3つのファイルがあります。
file1
次のデータがあります。
id,name,age
1,jj,60
2,kk,45
3,ss,56
file2
次のデータがあります。
id,name,age
1,jj,60
2,kk,44
3,ss,55
4,tt,66
file3
フィールドは1つだけです。 IDは次のとおりです。
id
1
2
3
file1
今&file2
の対応するIDを比較したいと思いますfile3
。
出力は次のようになります。
id file1 file2
2 age=45 age=44
3 age=56 age=55
ベストアンサー1
拡大するpaste
+awk
解決策:
awk -F',' -v ids=$(paste -s -d'|' <(tail -n+2 file3)) \
'BEGIN{ OFS="\t"; print "id", ARGV[1], ARGV[2] }
FNR==1{ next }
NR==FNR{ if ($1 ~ "^("ids")$") a[$1$2]=$3; next }
($1$2 in a) && a[$1$2] != $3{
printf "%d\tage=%d\tage=%d\n", $1, a[$1$2], $3
}' file1 file2
出力:
id file1 file2
2 age=45 age=44
3 age=56 age=55