Разница в выводе 2 текстовых файлов в 3-й текстовый файл
Я пытаюсь запустить файл bat, который сравнивает один файл с другим и выводит различия
Я пытался использовать утилиты gnu diff, fc и бесконечный Google, чтобы найти решение, но я не могу понять,
Файл 1
C:\Books\Tolkien, J.R.R. - The Adventures Of Tom Bombadil.pdf
C:\Books\test.rtf.epub
C:\Books\w_E_20130215.epub
Файл 2
C:\Books\test.rtf.epub
C:\Books\w_E_20130215.epub
Я хочу, чтобы файл 3 был
C:\Books\Tolkien, J.R.R. - The Adventures Of Tom Bombadil.pdf
У кого-нибудь есть идеи?
2 ответа
Вы могли бы использовать diff
из DiffUtils и что-то вроде этого:
diff file1.txt file2.txt | findstr /r /c:"^<" /c:"^>" >file3.txt
Выходным строкам будет предшествовать <
или же >
В зависимости от того, в каком файле отсутствовала соответствующая строка. Если вы хотите удалить и эти индикаторы, используйте что-то вроде этого:
for /f "tokens=1*" %a in (
'diff file1.txt file2.txt ^| findstr /r /c:"^<" /c:"^>"'
) do @echo %b >>file3.txt
+ Изменить %a
а также %b
в %%a
а также %%b
если вы хотите запустить это в командном файле.
FINDSTR /v /b /e /l /g:file2. file1. >file3.
должен выдать требуемые результаты - строки в файле1 отсутствуют в файле2.
/v
говорит "не найден", /b /e
вызывает точное совпадение, а не частичное совпадение /l
буквальный.