如何使用包含特定字符串的一个命令在grep regex命令中使用特定字符串跳过注释?

时间:2017-09-23 09:37:49

标签: unix grep

我有这个内容的文件:

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

我想打印所有没有评论#的行,并包含以/ nfs / location

开头的路径
path=/nfs/location/alex 
path = /nfs/location/ 
/nfs/location/
/nfs/location

我写了unix commad:

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

但带#的行也会出现

3 个答案:

答案 0 :(得分:0)

GNU grep 方法:

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

输出:

path=/nfs/location/alex 
path = /nfs/location/ 
/nfs/location/
/nfs/location

答案 1 :(得分:0)

只需使用awk:

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

答案 2 :(得分:0)

awk '/^path|^\/nfs/' file

path=/nfs/location/alex 
path = /nfs/location/ 
/nfs/location/
/nfs/location