Подібно до diffпараметрів, ви можете використовувати commкоманду з підстановками процесів і sort( commвимагає, щоб файли, над якими вона працює, були відсортовані). Це дозволить вам зосередитись лише на звичайних рядках, просто на рядках, що знаходяться в одному або іншому файлі, використовуючи -1для придушення рядків лише у першому файлі, -2придушення рядків лише у другому файлі або -3придушення рядків в обох, так що перегляньте всі рядки, що знаходяться лише в першому файлі, а не в другому, який ви могли зробити
comm -23 <(sort file1) <(sort file2)
Звичайно, якщо ви хочете, що ви можете також розглянути можливість використання grepподібних
grep -vFxf file2 file1
який буде розглядати рядки file2як шаблони і друкувати лише рядки з file1, які не відповідають ( -v) при обробці рядків з ( -f), file2як фіксованих рядків ( -F), які повинні відповідати всьому рядку ( -x).
grepРішення має перевагу , не потребуючи для сортування файлів, але він перевіряє тільки для рядків в одному з файлів, які не в іншому, а не в обох напрямках одночасно.
commпотрібні відсортовані файли. (Так, ви згадуєте про це побічно, але легко не помітити те, як ви це висловили). Крім того,commдля цього сценарію набагато ефективніше, ніжdiff.grepРішення може легко запустити з пам'яті , якщоfile2велика (експоненціальне роздуття при перетворенні НКА в ДКА), у нас було питання про це не так давно.