需要从proc mem info获取unix系统的总内存信息:
现在这个命令对我来说是正确的:
cat /proc/meminfo | grep "MemTotal"
但这会返回整行:
MemTotal: 1024984 kB
我需要进一步修剪该行:
1024984 kB
到目前为止,这是我正在使用的完整命令,但第二部分似乎不起作用:
cat /proc/meminfo | grep "MemTotal" | grep -E -o "([0-9])"
我认为第二个grep至少会返回数字部分,但它根本不会返回任何内容。
任何人都可以帮我纠正这个吗? 感谢。
答案 0 :(得分:4)
awk
更适合此处,对于匹配MemTotal
的所有行,打印第2列和第3列
$ grep 'MemTotal' /proc/meminfo
MemTotal: 1024984 kB
$ awk '/MemTotal/{print $2,$3}' /proc/meminfo
1024984 kB
使用grep
,如果PCRE可用,则使用可变长度的lookbehind:
$ grep -oP 'MemTotal:\h+\K.*' /proc/meminfo
1024984 kB
答案 1 :(得分:0)
很奇怪,对我来说,它会返回
8
0
8
4
9
0
4
这是因为[0-9]
只匹配一个数字。您需要+
来匹配至少一个。你也可以放下括号,这里没有任何用处。
grep MemTotal /proc/meminfo | grep -E -o '[0-9]+'