Если я grep файл, содержащий следующее:
These are words
These are words
These are words
These are words
... для слова These
, он напечатает строку These are words
четыре раза.
Как я могу запретить grep печатать повторяющиеся строки более одного раза? В противном случае, как я могу манипулировать выводом grep для удаления повторяющихся строк?
command-line
bash
grep
Trae
источник
источник
Ответы:
Философия Unix состоит в том, чтобы иметь инструменты, которые делают одно и делают их хорошо. В данном случае
grep
это инструмент, который выделяет текст из файла. Чтобы узнать, есть ли дубликаты, нужно отсортировать текст. Чтобы удалить дубликаты, используется-u
опцияsort
. Таким образом:sort
Есть много вариантов: смman sort
. Если вы хотите сосчитать дубликаты или использовать более сложную схему для определения того, что является или не является дубликатом, направьте выходные данные сортировки по адресуuniq
:grep These filename | sort | uniq
и посмотрите параметры вman
uniq`.источник
Использование
grep
и дополнительного переключателя, если вы ищете только одну строкуИз
man grep
или используя
awk
;)источник