File1の列3をFile2の列2と比較したいです。 File1の列3の値がFile2の列2に表示されない場合は、File1の行全体を印刷します。
ファイル1:
5/3/2021 Mobile $2,627.59
5/3/2021 Phone $2,056.11
5/3/2021 Loan $5,146.11
ファイル2:
5/11/2021 $2,627.59
5/12/2021 $2,056.11
5/15/2021 $7,516.11
5/13/2021 $406.11
5/12/2021 $2,056.11
希望の出力:
5/3/2021 Loan $5,146.11
ベストアンサー1
awk '
NR==FNR{ values[$2]; next }
!($3 in values)
' File2 File1
まず、File2
配列の2番目のフィールドを読み取り、それをvalues
インデックスとして保存します。このテストは、NR==FNR
空でない最初の入力ファイルでのみ機能します。スクリプトはnext
次のコード行をスキップして記録を続けます。
次に、File1
3番目のフィールドが配列のインデックスとして表示されないことを読み、確認しますvalues
。 trueの場合、現在のレコードを印刷します(デフォルトの動作)。