Как найти все повторяющиеся и не повторяющиеся строки в файлах
- AJIekceu4
- 16.11.2022
- 2 047
- 0
- 9
- 8
- 1
Вступление
Иногда может возникнуть ситуация, когда есть два файла с похожим содержимым и нам необходимо найти только повторяющиеся значения в обоих файлах или же наоборот, только те значения, которые различаются в этих двух файлах.
В 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
Добавить комментарий