2013-06-19 3 views
1

별개의 단어 개수 :는 입력 파일처럼 내가 가진

com.a.b 
com.c.d 
com.a.b 
com.e.f 
com.e.f 
com.e.f 

그리고 출력이처럼되고 싶다 : 당신이에 약간의 변화를 신경 쓰지 않는 경우

com.a.b 2 
com.c.d 1 
com.e.f 3 

답변

9

주어진 출력은 기존의 접근 방식은 sortuniq 함께 :

$ 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

'종류의 파일을 | 유니크 -c | awk '{print $ 2, $ 1}'는 올바른 출력을 제공합니다. – Swiss

+1

@Swiss는 좋은 해결책이기도 한 예제 입력을 제공하지만 라인 당 필드 수를 고정해야하므로 큰 해결책은 아닙니다. –