2017-01-27 4 views
0

У меня есть файл данных (users.dat) с записями как:Output и подсчитать общее число вхождений с помощью Grep в Linux/Никс

user1 
user2 
user4 
user1 
user2 
user1 
user4 
... 
user3 
user2 

, какую команду я должен (Grep туалет?) Использовать для подсчета сколько раз каждое слово повторяется, и выводит его на user_total.dat так:

user1 80 
user2 35 
user3 18 
user4 120 

вопрос в том, что я не могу определить «user1» или «user19287», потому что слишком много пользователей со случайным, но повторяющиеся цифры.

Но в этом DAT-файле повторяются пользователи.

Спасибо за помощь!

ответ

0

Используйте команду uniq для подсчета повторений строки. Для этого требуется сортировка ввода, поэтому сначала используйте sort.

sort users.dat | uniq -c > user_total.dat 
+0

WOW, который работает !!!! Спасибо за помощь!!! – TelePuzik

-1
sort <users.dat | uniq -c > user_total.dat 

Если вы хотите дальше в порядке вхождение ее через сортировку 2-й раз с помощью той или иной форме аргумент -n (читай справочную страницу по этому поводу).

(на редактирование: бах ... не понимаю, как немой система оказывается, что немного кода)

+0

Где вы считаете дубликаты? – Barmar

+0

По-видимому (и я не заметил этого, когда я писал) система удалила все из символа трубы. Вздох. Ошибка при использовании Stack Exchange, а не мой UN * X skillz. – zBeeble

+0

Это потому, что вы забыли использовать разметку кода, поэтому символы '<' and '>' были взяты как разметка HTML. – Barmar