Сравните два файла и выведите различия

Я в курсе diff и используя петли, но я просто не могу, кажется, действительно получить то, что мне нужно с diff. Я в основном ищу, чтобы сравнить два файла (file2.txt и file2.txt) и просто получить вывод того, что отсутствует между ними.

Задача 1: Найдите то, что отсутствует в файле 2.txt из файла file1.txt

Задача 2: Найти то, что отсутствует в файле. Некоторые строки могут существовать в file2.txt, что arent в file1.формат txt. Я хотел бы знать о них, как ну.

diff только говорит мне, что два файла не то же самое, идя строка за строкой сравнения различий. Что мне нужно, так это программа, которая проходит через файл и не различает по строкам. Если строка, содержащая '/bin / mount', находится в строке 2 файла file1.txt и находится в строке 59 файла file2.txt, тогда мне не нужно знать об этом. Я только хочу знать, чего нет в целом. Можно ли это сделать?

5
задан unixpipe
источник

2 ответов

Если вас не волнует порядок строк, сначала отсортируйте файлы. Чтобы увидеть, какие строки отсутствуют в каком файле, используйте comm вместо diff:

comm <(sort file1) <(sort file2)
5
отвечен choroba 2014-08-31 19:30:19
источник

Задача 1: Найти то, что отсутствует в file2.txt из файла file1.txt

С grep:

grep -xvFf file2.txt file1.txt

С comm:

comm -13 <(sort file1.txt) <(sort file2.txt)

С sort и uniq:

sort file2.txt file2.txt file1.txt | uniq -u

Задача 2: Найти то, что отсутствует в файле. Некоторые строки могут существовать в file2.txt, что arent в file1.формат txt. Я хотел бы знать о них, как ну.

С grep:

grep -xvFf file1.txt file2.txt; grep -xvFf file2.txt file1.txt

С comm:

comm -3 <(sort file1.txt) <(sort file2.txt) | tr -d '\t'

С sort и uniq:

sort file1.txt file2.txt | uniq -u
3
отвечен cuonglm 2014-08-31 19:41:14
источник

Другие вопросы bash command-line diff linux unix