2012-02-17 64 views
2

在終端執行命令之後,從另一個命令解析輸出:forever list用grep到

我得到以下輸出:

info: Forever processes running 
data:  uid command script   forever pid logfile        uptime   
data: [0] 0ClV node enfomo-server.js 376  377 /Users/USERNAME/.forever/0ClV.log 0:0:37:26.987 

我需要使用grep或一些替代,得到作爲輸出的以下字符串:

/Users/USERNAME/.forever/0ClV.log 

什麼是正確的命令?

回答

3

您可以使用grep做到這一點使用的-o標誌其中只打印匹配部分:

forever list | grep -o '\/Users.*log' 
+0

注意:此方法依賴於內容而不是位置。這可能是理想的,或者可能是有限的,這取決於未表徵的數據。 – 2012-02-17 20:45:44

+0

謝謝保羅指出這一點,我把這個問題解釋爲依賴於內容。 – 2012-02-17 21:00:17

+0

啊。在我的正則表達式中是一個字符或兩個字符。 – user1082013 2012-02-19 00:28:31

2

首先,你可能要隔離只有你想使用grep的行,則AWK會工作:

grep node file | awk '{print $7}' 

或切割:

grep node file | cut -d\ -f7