我正在编写一个bash命令,它总结在指定端口上运行的服务数。在我的情况下4092,4903,4904,4905。以下是我的命令:
ps -ef | grep '4905\|4904\|4903\|4902' | wc -l
输出:5
这里" \ |"作为OR运算符。现在结果是5,因为它会影响命令本身。如何从答案中减去1,使输出为4.
答案 0 :(得分:2)
使用:
ps -ef | grep '4905\|4904\|4903\|4902' | wc -l | awk '{print $0-1}'
答案 1 :(得分:1)
您可以在打印匹配数之前删除包含结果本身的最后一行:
ps -ef | grep '4905\|4904\|4903\|4902' | head -n -1 | wc -l
答案 2 :(得分:0)
您可以保存wc
并使用awk
获取预期的数字
ps -ef|grep ...|awk 'END{print NR-1}'