2013-06-19 4 views

ответ

9

Если вы не возражаете, небольшое изменение в учитывая выход, то традиционный подход с sort и uniq:

$ sort file | uniq -c 
     2 com.a.b 
     1 com.c.d 
     3 com.e.f 

в противном случае нас е скриптовый язык, который имеет ассоциативные массивы, такие как awk:

$ awk '{a[$0]++}END{for(k in a)print k,a[k]}' file 
com.e.f 3 
com.c.d 1 
com.a.b 2 

трубы в sort для заказа:

$ awk '{a[$0]++}END{for(k in a)print k,a[k]}' file | sort 
com.a.b 2 
com.c.d 1 
com.e.f 3 
+4

'сортировки файлов | uniq -c | awk '{print $ 2, $ 1}' 'также обеспечивает правильный вывод. – Swiss

+1

@Swiss дал пример ввода, который также был бы хорошим решением, но это не большое общее решение, так как необходимо исправить количество полей на строку. –

Смежные вопросы