如何在grep shell命令中使用正则表达式

时间:2015-11-23 04:26:50

标签: regex shell grep

我无法在shell中使用[ - ] + [\ n] [ - ] +这个正则表达式。有人可以帮助将它与grep中的转义字符一起使用。我想从文件

中找到像'---- \ n ----'这样的行

1 个答案:

答案 0 :(得分:0)

普通老grep使用Basic Regular Expression,因此您无法立即访问+量词。在现代(POSIX)grep中,可以使用此功能,但它需要在量词之前使用反斜杠,例如\+

grep '-\+\\n-\+' file

(另请注意单引号以防止shell执行自己的反斜杠替换;并注意n如何匹配自身,并且文字反斜杠与双\\匹配以逃脱它或在一个字符类[\]);或者您可以使用支持Extended Regular Expressiongrep -E(又名egrep):

grep -E '-+\\n-+' file

对于记录,[\n]匹配单个字符,可以是文字反斜杠或文字n。这个结构称为字符类;莫名其妙地,新人似乎想要尝试使用方括号几乎是因为他们“看起来像正则表达式”,显然。