
У меня есть два файла, как показано ниже: 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