Ответы:
Вы можете добиться этого с помощью sort
и uniq
утилит.
пример:
[john @ awesome ~] $ echo -e "test \ ntest \ ntest \ nanother test \ ntest" контрольная работа контрольная работа контрольная работа еще один тест контрольная работа [john @ awesome ~] $ echo -e "test \ ntest \ ntest \ nanother test \ ntest" | сортировать | уник еще один тест контрольная работа
в зависимости от данных вы можете использовать некоторые из коммутаторов.
sort -u
вместо sort | uniq
. Это экономит процесс, уменьшает общий объем операций ввода-вывода и уменьшает общее количество сравнений, которые необходимо выполнить.
Вы можете использовать:
grep -rohP "(mySearchString)" . | sort -u
-r: рекурсивный
-o: печатать только соответствующую часть текста
-h: не печатать имена файлов
-P: регулярное выражение в стиле Perl (вы можете использовать -E вместо этого в зависимости от вашего случая)
sort -u
лучше, чем sort | uniq
, как указал @Chris Johnsen.
sort
раньше,uniq
если данные не упорядочены. В противном случаеuniq
не будет работать полностью.