2つのファイル間の共通行とそのファイルの行番号を印刷します。

2つのファイル間の共通行とそのファイルの行番号を印刷します。

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インデックスNRl[$0]ある場合、印刷された値はl[$0]現在の行番号(FNR)です。

awk 'FNR==NR{l[$0]=NR; next}; $0 in l{print $0, l[$0], FNR}' file1 file2

おすすめ記事