我敢肯定有一个快速和容易的方法来计算一个值的列在Unix系统上的总和(使用像awk或xargs可能),但写一个shell脚本逐行解析行是唯一的事情,在目前的想法。
例如,修改以下命令以计算和显示SEGSZ列(70300)的总和的最简单的方法是什么?
ipcs -mb | head -6 IPC status from /dev/kmem as of Mon Nov 17 08:58:17 2008 T ID KEY MODE OWNER GROUP SEGSZ Shared Memory: m 0 0x411c322e --rw-rw-rw- root root 348 m 1 0x4e0c0002 --rw-rw-rw- root root 61760 m 2 0x412013f5 --rw-rw-rw- root root 8192
ipcs -mb | tail +4 | awk '{ sum += $7 } END { print sum }'
或没有尾:
ipcs -mb | awk 'NR > 3 { sum += $7 } END { print sum }'
使用awk与bc具有任意长的结果(对Jouni K.的信用):
ipcs -mb | awk 'NR > 3 { print $7 }' | paste -sd+ | bc