2017-09-23 76 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 
相关问题