두 번째 열부터 시작하여 파일에서 가장 일반적인 10개의 문자열을 한 줄씩 인쇄하고 싶습니다.
입력 예:
example123:Example
Example321:Example
Common:String
Common:String
..
예상 출력
example
string
...
답변1
아마도 철자가 틀린 경우의 변형일 것입니다. 그렇다면 다음이 유효합니다.
awk -F: '{print $2}' input.txt | sort | uniq -c | sort -rn | awk '{print $2}'
설명하다
이를 이해하려면 첫 번째 명령부터 시작하여 파이프라인까지 작업한 후 개별적으로 실행하십시오. 그런 다음 다음 파이프를 순서대로 추가하십시오.
awk -F: '{print $2}' input.txt
::
구분 기호로 두 번째 필드를 인쇄합니다.| sort
: 실행할 수 있도록 파일을 정렬합니다.| uniq -c
, 중복 개수를 나열하면서 인접한 중복 항목을 하나로 압축합니다-c
.| sort -rn
: 출력을 개수별로 내림차순으로 정렬합니다.| awk '{print $2}'
: 개수를 제거하고 일치하는 문자열만 인쇄합니다.
나는 일반적으로 cut
대신 을 사용 awk
하지만 귀하의 질문에서는 그것을 요구하므로 awk
... 대안으로 첫 번째 명령이 더 간단합니다 cut -d: -f2 input.txt
.