2017-09-23 74 views
0

我有文件與此內容:如何使用包含特定字符串的命令在grep regex命令中跳過具有特定字符串的註釋?

path=/nfs/location/alex 
path = /nfs/location/ 
alex/nfs/location 
/nfs/location/ 
# /nfs/location/ 
#alex /nfs/location 
alex # d /nfs/location 
/nfs/location 

我想打印的所有行,其中沒有評論#和包含與/ NFS /位置

path=/nfs/location/alex 
path = /nfs/location/ 
/nfs/location/ 
/nfs/location 
啓動路徑

我寫UNIX commad:

grep -rE ([^#.*]|^[^0-9aA-zZ]/nfs/location/ . 

但#線也出現

+0

很抱歉,但你的目標的描述沒有意義,請修改它明確你正在尋找什麼_exactly_。 「所有以路徑開始並且不包含#的行」...以_what_開始? – arkascha

+0

已更新@arkascha – Alex

+0

@Alex,爲什麼從結果中錯過了alex/nfs/location?這與你的評論矛盾*路徑只是字符串的例子。它不是恆定的* – RomanPerekhrest

回答

0

GNU grep的方法:

grep -P '^([^#]+[[:space:]]*=[[:space:]]*)?/nfs/location' file 

輸出:

path=/nfs/location/alex 
path = /nfs/location/ 
/nfs/location/ 
/nfs/location 
+0

@Alex,看我的更新 – RomanPerekhrest

+0

路徑只是字符串的例子。它不是恆定的。 @RomanPerekhrest – Alex

+1

@Alex,你應該在你的問題中提到這種情況 – RomanPerekhrest

0

只需使用AWK:

awk -F'[= ]+' 'index($NF,"/nfs/location")==1 && !/#/' file 
0
awk '/^path|^\/nfs/' file 

path=/nfs/location/alex 
path = /nfs/location/ 
/nfs/location/ 
/nfs/location 
相關問題