Я ищу способ сравнить два файла на уровне ключа (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
попытался использовать ниже, где file2 используется в качестве файла драйвера для набора выходных данных, поэтому он не печатает и игнорирует строку с идентификатором 3, поскольку его нет в file2.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 | description | name |дата, Матч
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 | ROW 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
Буду очень признателен за рекомендации всех экспертов, которые пришли сюда для достижения этой цели.