Найти разницу в двух файлах

Найти разницу в двух файлах

У меня есть два файла, как показано ниже: file1.txt

a 2019 15
b 2019 20

файл2.txt

a 2020 10
b 2019 15

Желаемое выходное содержимое файла file1.txt и разница между третьими столбцами (из file1 и file2) относительно первого столбца из файла 1)

  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печатает первый столбец ( $1, например a), второй столбец ( $2, например 2019) и значение третьего столбца за вычетом значения пятого столбца ( $3-$5, например 15 - 10.)

Результат, по-видимому, соответствует желаемому:

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

Связанный контент