文件“test”的内容:
[]# 0-CPU4 8.9%, 9336/832, 0x5ffe9b88--0x5ffec000
[]# 0-CPU0 13.5%, aa: 4/3, xvl: 35
[]# 0-CPU1 8.6%, SM: 1/4, ovl: 60
[]# 0-CPU0 38.8%, SM: 1/4, ovl: 62
从这个文件中,我想要最后一个CPU0的百分比,即
38
(忽略小数点)我使用下面的shell命令,该命令运行良好,想知道是否有更好的方法。
grep CPU0 test | tail -1 | awk '/0-CPU0/ {print $3}' | sed 's/\..*//'
#above command prints "38"
最佳答案
假设您的数据在一个名为test的文件中:
cat test | grep CPU0 | tail -1 | awk '{ printf("%d", $3) }'
grep CPU0 test | tail -1 | awk '{ printf("%d", $3) }' - condensed
awk ' /CPU0/ {a=$3} END{ printf("%d", a) }' test - more condensed
它能做什么:
[]# 0-CPU0 38.8%, SM: 1/4, ovl: 62
[]#
,第二项是0-CPU0,第三项是38.8%%d
仅给您38