2016-11-17 68 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}(?= \ /)''? –