Что я могу использовать для разграничения двух файлов CSV на уровне поля, выделяя точные поля, которые изменились? Предположим, что простой формат CSV, где запятые появляются только как разделители полей и нигде больше.
Инструмент для разграничения файлов CSV на уровне поля?
Ответ 1
Попробуйте git diff
:
git diff --color-words x.csv y.csv
Ответ 2
git diff --word-diff-regex
предлагает способ отображения изменений на уровне поля. См. Также используйте запятую в качестве разделителя слов в diff
Это решение хорошо работает для отображения изменений в CSV файле с числами и пробелами. Например, предположим, что мы изменили одно число
1,1,1,1,1,1,1,1
к
1,1,2,1,1,1,1,1
Если мы используем git diff --word-diff-regex="[^[:space:],]+" x.csv y.csv
, то получим:
1,1,[-1-]{+2+},1,1,1,1,1
Это может быть очень полезно для файла CSV со многими столбцами.
Ответ 3
csvdiff
- инструмент командной строки, написанный на Python, который сравнивает CSV файлы на полевом уровне: https://pypi.python.org/pypi/csvdiff
Ответ 4
вы можете использовать этот инструмент https://github.com/maozza/helpers-scripts/blob/master/csv_diff.py script создает два файла:
field_change_sum.csv
- содержит количество изменений в каждом поле
results_details.json
- содержат изменения в формате JSON