AWK - 배열의 스토리지 또는 인덱스를 계산하는 방법

AWK - 배열의 스토리지 또는 인덱스를 계산하는 방법

발생 횟수를 계산해야 하는 데이터가 있습니다.

1
2
1
2
3
1

아래 awk 명령을 사용하여 정상적으로 작동했습니다.

awk -F'","' '{ a[$1]++ } END { for (n in a) print n "=" a[n] } ' text.txt

그리고 출력:

2=2
3=1
1=3

또 다른 문제는 배열에 저장된 개수를 계산해야 한다는 것입니다. 위 출력의 행 수도 계산해야 할 것으로 예상됩니다. 예상 출력:

답변1

GNU에서는 awk연결 length(my_arry)한 요소의 수가 표시됩니다.my_arry촬영.

배열 길이를 지원하지 않는 다른 구현에서는 다음을 수행할 수 있습니다.

awk '{ … } END{ for (elements in my_arry) count++; print count }'

답변2

명령 사용

awk '{a[$1]++}  END { for ( n in a ) { i++; print n "=" a[n]} print i }' file

예를 들어


#!/bin/bash
echo '1
2
1
4
5
4' | awk '{a[$1]++}  END { for ( n in a ) { i++; print n "=" a[n]} print i }'

출력은 다음과 같습니다

1=2
2=1
4=2
5=1
4

답변3

이는 다음 방법으로 수행됩니다.

주문하다:awk '{a[$1]++}END{for(x in a)print a[x]"="x}' filename

command: @praveen:~$ awk '{a[$1]++}END{for(x in a)print a[x]"="x}' p.txt
3=1
2=2
1=3
praveen@praveen:~$

관련 정보