Не удается правильно воспроизвести игры

Используйте опции --*-line-format=... для diff

Вы можете точно указать diff именно то, что вам нужно - ниже:

diff --old-line-format='%L' --new-line-format='%L' --unchanged-line-format='' f1.txt f2.txt

Можно указать вывод diff в очень подробном виде, подобно формату номера printf.

Строки из первого файла test1.csv называются «старыми» строками, а строки второго, [ f8], являются «новыми» строками. Это имеет смысл, когда diff используется, чтобы увидеть, что изменилось в файле.

Необходимые параметры - это те, которые устанавливают формат «старых» строк, «новых» строк и «неизмененных» строк, линий. Необходимые форматы очень просты: для измененных строк, новых и старых, мы хотим выводить только текст строк. %L является символом формата текста строки. Для неизменных строк мы ничего не хотим показывать.

С помощью этого мы можем написать такие параметры, как --old-line-format='%L', и поместить все это вместе, используя ваши данные примера:

$ diff --old-line-format='%L' --new-line-format='%L' --unchanged-line-format='' test1.csv test2.csv
100,4,2,1,7
100,300,500,700
21,22,23,24,25
50,25,700,5
[d9 ]

Замечания о производительности

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

Существует опция оптимизации для использования diff с большими файлами: --speed-large-files. Он использует предположения о структуре файла, поэтому неясно, помогает ли это в вашем случае, но стоит попробовать.

Параметры формата описаны в man diff в разделе --LTYPE-line-format=LFMT.

0
задан 21 April 2018 в 18:59

0 ответов

Другие вопросы по тегам:

Похожие вопросы: