grep -H "httpd" /Users/sars/logs/testlogs/2012-04-02*/*/top
我正在使用文件并查找耗费超过0.00%CPU的httpd。所以输出看起来像这样
/Users/sars/logs/2012-04-03-021/server1/top:10182 root 15 96 0 50352K 12880K ucond 2 48:01 0.00% httpd
我只希望在此输出行
上看到结果的输出不是0.00%答案 0 :(得分:1)
您可以再次grep
:
grep -H "httpd" /Users/sars/logs/testlogs/2012-04-02*/*/top | grep -vw 0.00%
答案 1 :(得分:0)
我建议你单独看看awk而不是grep。您可以获得更大的灵活性,而不必处理如此多的管道。
awk '
BEGIN {
minimum=10; # only show lines greater than this percent
}
# skip lines that are not httpd
$12 != "httpd" { next; }
# remove the "%" from the cpu usage column
{ sub(/%/, "", $11) }
# print lines whose % is higher than minimum
$11 > minimum { print; }
' /Users/sars/logs/testlogs/2012-04-02*/*/top
可能需要进行一些调整;我没有看到你的数据,所以我实际上没有测试过这个。
如果我自己这样做,我会将awk脚本存储为一个独立的工具,可以在shell脚本中调用,或者我将它嵌入到函数的shell脚本中。如果不知道你打算如何使用它,就无法真正推荐。