grep을 사용하여 개수 확인

grep을 사용하여 개수 확인

저는 sun10 Solaris 운영 체제에서 작업 중이며 다음을 사용하여 테이블을 반환하는 프로세스가 있습니다 dmh -q 12.

*PROFILE   PRIORITY   COMM_TYPE     QID    # OF MSGS   ATTRIBUTES/VALUES*
      13        999          DC      24            3     32  1865
      13        999          DC      94            1     32  1665
      13        999          DC     157            0     32  1961
      13        999          DC     188            2     32  1784
      13        999          DC     293            0     32  1625
      13        999          DC     294           31     32  1950
      13        999          DC     713            0     32  1601
      13        999          DC     838            0     32  1607
      13        999          DC    1458            0     32  1855

여기에서는 총 메시지 수를 가져와서 이를 변수에 저장하려고 시도했지만 작동하지 않았습니다.

dmh -q 12 | grep -v'# OF MSGS' | wc -l 

예상 결과는 37이어야 합니다.

답변1

사용 awk:

dmh -q 12 | awk 'NR > 1 { sum += $5 } END {print sum}'

그러면 5열의 모든 값을 합산하여 합계가 인쇄됩니다.

변수에 저장하려면 명령 대체를 사용하십시오.

var=$(dmh -q 12 | awk 'NR > 1 { sum += $5 } END {print sum}')

답변2

제공된 입력에 따라 유틸리티를 사용할 수 있습니다 dc.

$ dmh -q 12 | sed -e '1d;y/-/_/' | dc -e "[lMpq]sq [s0s0lM+sM]sm [?z0=qlmxcz0=?]s? 0sMl?x"
37

참고: 이는 행에 총 7개의 열이 있다고 가정합니다.

관련 정보