Как найти все повторяющиеся и не повторяющиеся строки в файлах

Как найти все повторяющиеся и не повторяющиеся строки в файлах

Вступление

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

В Linux

Ищем НЕ ПОВТОРЯЮЩИЕСЯ строки (уникальные)

Допустим у нас есть два текстовых файла:

Содержимое файла 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
Была ли эта статья Вам полезна?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.