Вступление
Время от времени может появиться положение дел, когда есть два файла с схожим содержимым и нам нужно найти только повторяющиеся значения в обоих файлах либо же напротив, только те значения, различаем?? в этих 2-ух файлах.
В Линукс
Ищем НЕ ПОВТОРЯЮЩИЕСЯ строчки (неповторимые)
Приемлим у нас есть два текстовых файла:
Содержимое файла file1.txt
aaa bbb ccc ddd eee fff ggg
Содержимое файла file2.txt
bbb aaa ccc eee 111 222 ddd xxx
С той целью, чтоб найти все неповторимые строчки в файле file1.txt (т.е. те строчки, которые не содержатся в файле file2.txt) можно пользоваться последующей командой:
cat file1.txt | grep -v -f file2.txt
Итог реализации этой команды будет таким:
fff ggg
Как мы видим в итоге реализации этой команды выводятся только те строчки, которые уникальны в файле file1.txt и которых нет в файле file2.txt
Для того, чтобы найти все уникальные строки в файле file2.txt (т.е. те строки, которые не содержатся в файле file1.txt) можно воспользоваться следующей командой:
cat file2.txt | grep -v -f file1.txt
Результат выполнения данной команды будет таким:
111 222 xxx
Ищем ПОВТОРЯЮЩИЕСЯ строки (дубликаты)
Допустим у нас есть два текстовых файла:
Содержимое файла file1.txt
aaa bbb ccc ddd eee fff ggg
Содержимое файла file2.txt
bbb aaa ccc eee 111 222 ddd xxx
Для того, чтобы найти все повторяющиеся строки (дубликаты) в файлах file1.txt и file2.txt можно воспользоваться следующей командой:
cat file1.txt | grep -f file2.txt
Результат выполнения данной команды будет таким:
aaa bbb ccc ddd eee

Добавить комментарий