Подтвердить что ты не робот

Инструмент для разграничения файлов CSV на уровне поля?

Что я могу использовать для разграничения двух файлов CSV на уровне поля, выделяя точные поля, которые изменились? Предположим, что простой формат CSV, где запятые появляются только как разделители полей и нигде больше.

4b9b3361

Ответ 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