2012-02-17 76 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