如何从grep结果中减去1

时间:2015-01-22 09:27:14

标签: bash

我正在编写一个bash命令,它总结在指定端口上运行的服务数。在我的情况下4092,4903,4904,4905。以下是我的命令:

ps -ef | grep '4905\|4904\|4903\|4902' | wc -l

输出:5

这里" \ |"作为OR运算符。现在结果是5,因为它会影响命令本身。如何从答案中减去1,使输出为4.

3 个答案:

答案 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}'