2つのファイルがあります。あるファイルの内容を別のファイルの内容と比較したい。 2つのファイルの間に一致する行がある場合は、各ファイルの行と行番号を印刷します。例:
ファイル1:
ABC
PQR
MNO
XYZ
ファイル2:
qqqq
wewe
ABC
acdd
abcc
nop
MNO
予想出力:
ABC 1 3
MNO 3 7
..
ベストアンサー1
awk
最初のファイルを処理し、行()とその行番号()(インデックス/値)を連想配列()に保存し、2番目のファイルを処理して行が配列$0
インデックスNR
にl[$0]
ある場合、印刷された値はl[$0]
現在の行番号(FNR
)です。
awk 'FNR==NR{l[$0]=NR; next}; $0 in l{print $0, l[$0], FNR}' file1 file2