Ответ 1
Вы можете попробовать..
comm -13 <(sort file1) <(sort file2) > file3
или
grep -Fxvf file1 file2 > file3
или
diff file1 file2 | grep "<" | sed 's/^<//g' > file3
или
join -v 2 <(sort file1) <(sort file2) > file3
Я хочу найти разницу между двумя файлами, а затем поставить только различия в третьем файле. Я видел разные подходы, используя awk, diff и comm. Есть ли еще?
например Сравните два файла по очереди и создайте разницу в другом файле
например Скопировать разницу между двумя файлами в unix
Мне нужно знать, какой самый быстрый способ найти все различия и перечислить их в файле для каждого из нижеприведенных случаев -
Case 1 - file2 = file1 + extra text appended.
Case 2 - file2 and file1 are different.
Вы можете попробовать..
comm -13 <(sort file1) <(sort file2) > file3
или
grep -Fxvf file1 file2 > file3
или
diff file1 file2 | grep "<" | sed 's/^<//g' > file3
или
join -v 2 <(sort file1) <(sort file2) > file3
Другая опция:
sort file1 file2 | uniq -u > file3
Если вы хотите увидеть только дублирующиеся записи, используйте опцию "uniq -d":
sort file1 file2 | uniq -d > file3
Вы также можете попытаться включить md5-хэш-суммы или аналогичные, чтобы определить, есть ли какие-либо различия вообще. Затем сравнивайте только файлы, имеющие разные хэши...
Это будет работать быстро:
Случай 1 - Файл2 = Файл1 + добавлен дополнительный текст.
grep -Fxvf File2.txt File1.txt → File3.txt
Файл 1: 80 строк Файл 2: 100 строк Файл 3: 20 Линии