2015-03-21 2 views
5

У меня большой файл, строки выглядят так: Номера текстовых номеров и т. Д. [Man- (некоторые цифры)] много этого Человека-somenumbers повторяется в нескольких строках, я хочу для подсчета только уникальных Mans-слов. Я не могу использовать уникальный файл, потому что текст перед словами Man всегда отличается в каждой строке. Как я могу сосчитать только уникальные слова Man-somenumbers в файле?Как найти уникальные слова из файла linux

+0

Комбинация 'grep' и' wc' или 'lc' должно быть хорошим началом. – arkascha

ответ

6

Если я понимаю, что вы хотите сделать правильно, то

grep -oE 'Man-[0-9]+' filename | sort | uniq -c 

должен сделать трюк. Она работает следующим образом: Во-первых

grep -oE 'Man-[0-9]+' filename 

изолирует все слова из файла, которые соответствуют Man-[0-9]+ регулярному выражению. Затем этот список отправляется через sort, чтобы получить отсортированный список, который требуется uniq, а затем этот отсортированный список отправляется через uniq -c, чтобы подсчитать, как часто появляется каждое уникальное слово Man-.

+0

Он также работал без опции -o. При использовании опции -o это говорит о некорректной опции. Я использую окна и используя команды внутри GIT BASH из установки GIT. –