Text-Processing
用 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
使用
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}')
根據提供的輸入,您可以使用該
dc
實用程序:$ dmh -q 12 | sed -e '1d;y/-/_/' | dc -e "[lMpq]sq [s0s0lM+sM]sm [?z0=qlmxcz0=?]s? 0sMl?x" 37
注意:這是假設您連續共有 7 列。