2つのファイルの違いを見つける

2つのファイルの違いを見つける

次の2つのファイルがあります:file1.txt

a 2019 15
b 2019 20

ファイル2.txt

a 2020 10
b 2019 15

file1の最初の列に基づいてfile1.txtとdiff bw 3番目の列(file1とfile2の)の望ましい出力)

  a 2019 5
  b 2019 5

答え1

これを行うコード行は次のとおりです。

join file1.txt file2.txt | awk '{print $1,$2,$3-$5}'

このjoinコマンドはまず、関連する値を次のように同じ行に配置します。

[gnubeard@mothership: ~/diffy]$ join file{1,2}.txt
a 2019 15 2020 10
b 2019 20 2019 15

次に、awk最初の列($1a:)、2番目の列($22019:)、3番目の列の値から5番目の列の値($3-$515 - 10:)を引いた値を印刷します。

結果は目的の出力と一致するようです。

[gnubeard@mothership: ~/diffy]$ join file{1,2}.txt | awk '{print $1,$2,$3-$5}'
a 2019 5
b 2019 5

関連情報