Как сохранить diff двух текстовых файлов в третий файл?
Допустим имеются 2 одинаковых CSV файла с какой-то выгрузкой(file1.csv и file2.csv). Например, в файл file2.csv добавили или изменили пару строк. Можно ли как-то с помощью команды diff(или еще как) сравнить 2 этих файла и строки, которые отличаются сохранить в отдельный файл. По умолчанию diff сохраняет результат в спец. формате(стрелки, разделители), а нужно по сути чтобы просто сохранил отличающиеся строчки.
Столкнулся с одной проблемой. Файлы могут быть абсолютно одинаковы по содержанию, но строки могут меняться местами. diff в этом случае считает это изменением. Можно ли как-то проигнорировать тот факт, что строчка просто переместилась? sort использовать нельзя, т.к. важен порядок записей.
bx-coder: То вам мешает, то порядок важен, определитесь; с точки зрения любой системы версионирования смена позиции строки - изменение. Можно сделать финт ушами в виде:
DIFF_LINES=`diff --changed-group-format="%>" --unchanged-group-format="" file1.csv file2.csv`; for LINE in $DIFF_LINES; do grep -sx -m 1 LINE file1.csv > newlines.csv; done