2014-12-01 3 views
9

Могу ли я использовать команду diff, чтобы узнать, отличаются ли два файла на k строк?команда diff для получения только числа разных строк

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

thx!

+1

возможно дубликат [Как подсчитать разницу между двумя файлами на Linux] (http://stackoverflow.com/questions/1566461/how-to-count-differences-between -two-files-on-linux) –

ответ

14

Да, вы можете и в режиме реального Linux можете использовать несколько команд, соединенных вместе для выполнения задачи.

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

diff file1 file2 

Это даст вам список изменений. Те ваши интересующийся являются строками с префиксом символом «>»

Вы используете Grep инструмента для фильтрации их следующим образом

diff file1 file2 | grep "^>" 

наконец, когда у вас есть список изменений вашего Вы просто используете команду wc в режиме линии, чтобы подсчитать количество изменений.

diff file1 file2 | grep "^>" | wc -l 

, и у вас есть прекрасный пример философии, в которой работает Linux.

+0

Это не будет получать строки, которые находятся в файле1, но не файл2, например, если file1 «привет», а file2 - пустой файл, diff будет просто «

+0

@AndrewNguyen Здесь это связано с тем, как определить разницу линий. –

+0

Это не работает вообще. #thelinuxphilosophy – djechlin

0

diff может выполнять всю первую часть работы, но без учета; туалет делает все остальное:

diff -y --suppress-common-lines file1 file2 | grep wc -l

 Смежные вопросы

  • Нет связанных вопросов^_^