2016-11-17 56 views
0

我需要从grep命令中获取一个值。例如:如何从grep获取组值?

netstat -ntlp | grep 8000

输出:

tcp6 0 0 :::8000 ::: LISTEN 975/(squid-1)

我想从输出中获得975,所以我再次使用这个命令:

netstat -ntlp | grep 8000 | grep -oP '\d{1,4}\/'

这是结果:

975/

然后,如果我要得到975的一个命令,我应该使用这样的:

netstat -ntlp | grep 8000 | grep -oP '\d{1,4}\/' | grep -oP '\d{1,4}'

这将让我想要什么[975],但我不希望使用grep -oP | grep -oP。我可以使用grep -oP和组(1):

netstat -ntlp | grep 8000 | grep -oP '(\d{1,4})\/' | grop(1)得到975吗?

有人能告诉我如何获得grep的组值吗?谢谢。

回答

0

尝试以下:

echo 'tcp6 0 0 :::8000 ::: LISTEN 975/(squid-1)' | grep -oP '\d{1,4}(?=\/)' 
+0

我可以使用grep的马赫975这样的:'netstat的-ntlp | grep -oP'(?<= 8000。*)\ d {1,4}(?= \ /)''? –