Способ вывода различий между двумя файлами (предпочтительно с использованием командной строки)
Я знаком с такими инструментами, как tkDiff и WinMerge, и знаю, как увидеть разницу между двумя файлами.
Я хочу сделать отчет о элементах в одном файле, которые не присутствуют в другом.
Например:
Файл1 содержит:
apple
cool
dude
flan
Файл2 содержит:
apple
ball
cool
dude
elephant
Я хочу создать отчет, содержащий:
ball
elephant
Или, еще лучше, такой отчет:
+ball
+elephant
-flan
Кто-нибудь знает инструмент, который может это сделать? Предпочтительно с параметрами командной строки.
Функция отчета в WinMerge не слишком далека от того, что мне хотелось бы, но для этого не существует опции командной строки (насколько мне известно).
Спасибо заранее.
Ответы
Ответ 1
Вы, вероятно, хотите утилиту связи Unix. Версии Windows включены в gnuwin32
НАЗВАНИЕ
comm - compare two sorted files line by line
СИНТАКСИС
comm [OPTION]... FILE1 FILE2
ОПИСАНИЕ
Compare sorted files FILE1 and FILE2 line by line.
With no options, produce three-column output. Column one contains
lines unique to FILE1, column two contains lines unique to FILE2, and
column three contains lines common to both files.
-1 suppress lines unique to FILE1
-2 suppress lines unique to FILE2
-3 suppress lines that appear in both files
Ответ 2
Это может сработать для вас (GNU diff):
diff -u file1 file2 | sed -n '1,2d;/^[-+]/p'
+ball
-flan
+elephant
Ответ 3
Чтобы сравнить данные с командной строкой, вы можете использовать
COMP/a/l D:\Folder1\data.txt D:\Folder2\data.txt
Ниже приведены другие параметры сравнить файлы и папки с командной строкой.