정렬되지 않은 IP 목록이 있는데 이를 세어 발생순으로 정렬해야 합니다.
써봤는데 sort -n | uniq -c | sort -n
효과는 좋은데 좀 더 저렴하게 하고 싶은데... 과연 awk
이게 가능할까요?
입력하다
1.1.1.1
2.2.2.2
1.1.1.1
3.3.3.3
2.2.2.2
1.1.1.1
산출
3 1.1.1.1
2 2.2.2.2
1 3.3.3.3
답변1
싱글로앗프로세스:
awk '{ a[$1]++ }END{ for(i in a) print a[i],i }' file
산출:
3 1.1.1.1
2 2.2.2.2
1 3.3.3.3
발생 내림차순으로 레코드를 출력하려면 다음 GNU를 사용하십시오.앗방법:
awk 'BEGIN{ PROCINFO["sorted_in"]="@val_num_desc" }{ a[$1]++ }
END{ for(i in a) print a[i],i }' file