Я ищу способ сравнить два файла на уровне ключа (id) и отобразить изменения на уровне столбца.
file_1.txt
id|description|name|date
1|Row 1|a|2019-06-15 00:20:15:00
2|Row 2|b|2019-06-16 15:18:10:00
3|Row 3|c|2019-06-17 07:02:17:00
4|Row 4|d|2019-06-25 09:00:01:00
5|Row 5|e|2019-06-25 22:00:00:00
file_2.txt
id|description|name|date
1|Row 1|a|2019-06-15 00:20:15:00
2|Row 2|c|2019-06-16 15:18:10:00
4|Row 4|d|2019-06-25 09:00:01:00
5|ROW 5|b|2019-06-25 22:00:00:00
7|Row 7|f|2019-06-17 07:02:17:00
Вывод должен выглядеть так:
1|Row 1|a|2019-06-15 00:20:15:001|Row 1|a|2019-06-15 00:20:15:00,Match
2|Row 2|c|2019-06-16 15:18:10:00|Row 2|b|2019-06-16 15:18:10:00No Match
3|Row 3|c|2019-06-17 07:02:17:00,No Match
4|Row 4|d|2019-06-25 09:00:01:004|Row 4|d|2019-06-25 09:00:01:00,Match
5|ROW 5|b|2019-06-25 22:00:00:00|Row 5|e|2019-06-25 22:00:00:00,No Match
7|Row 7|f|2019-06-17 07:02:17:00,No Match
попытался использовать ниже, где файл2 используется в качестве файла драйвера для вывода вывода, поэтому он не печатает и игнорирует строку с идентификатором 3, поскольку ее нет в файле2.txt
awk -F, 'NR==FNR{ arr[$1]=$0; next } { print $0 (arr[$1]==$0?arr[$1]",Match":arr[$1]",No Match") }' OFS=, file1.txt file2.txt
id|описание|имя|дата,Соответствие
1|Строка 1|a|2019-06-15 00:20:15:001|Строка 1|a|2019-06-15 00:20:15:00, Совпадение
2|Ряд 2|c|2019-06-16 15:18:10:00,Нет совпадений
4|Ряд 4|d|2019-06-25 09:00:01:004|Ряд 4|d|2019-06-25 09:00:01:00,Соответствует
5|Ряд 5|b|2019-06-25 22:00:00:00,Нет соответствия
7|Строка 7 |f|2019-06-17 07:02:17:00,Нет совпадений
Не уверен, почему он печатает только записи из файла1 и файла2, когда есть совпадение.
Чтобы дать больше информации об этом - я пытаюсь использовать эту команду awk, чтобы найти различия в ч/б файлах, а затем создать отчет, который в основном показывает, какие столбцы имеют разные значения. в идеале конечный результат будет выглядеть так
id|Change| Columns
1|No Change|NA
2|Change|name
3|Exists only in file 1|NA
4|No Change|NA
5|Change|description,name
7|Exists only in file 2|NA
Был бы очень признателен за руководство от всех экспертов здесь, чтобы достичь этого.