저는 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개의 열이 있다고 가정합니다.