Linuxの熱比較

Linuxの熱比較

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次のコード行をスキップして記録を続けます。

次に、File13番目のフィールドが配列のインデックスとして表示されないことを読み、確認しますvalues。 trueの場合、現在のレコードを印刷します(デフォルトの動作)。

おすすめ記事