我有一个返回数百行的ps -ef命令的输出,除了末尾的数字之外,我需要对一个模式进行grep,并且返回每个模式的一个实例。示例:
这个特定的ps -ef命令输出数十行,每行包含字符串svc-0或svc-5或0到5之间的任何数字,svc编号是随机分配的。如果我执行grep -Eo 'svc-[0-5]',它将只匹配模式并从每一行返回每个实例。我只需要确认svc-0和svc-5的存在。我希望的输出是:
svc-0
svc-5我不能仅仅将一个-m2添加到grep中,因为svc行经常在一行中重复多次,例如:
svc-5
svc-5
svc-5
svc-5
svc-5
svc-0
svc-0
svc-0
svc-0
svc-0发布于 2018-10-16 15:15:36
您可以使用一个awk过滤器来接近它,该过滤器查找所需的两种模式;如果找到这两种模式,则成功退出,否则退出时使用"failure":
ps -ef ... | awk '/svc-0/ { zero++; } /svc-5/ { five++; } END { if (zero && five) exit 0; exit 1; }'https://unix.stackexchange.com/questions/475826
复制相似问题