我无法在shell中使用[ - ] + [\ n] [ - ] +这个正则表达式。有人可以帮助将它与grep中的转义字符一起使用。我想从文件
中找到像'---- \ n ----'这样的行答案 0 :(得分:0)
普通老grep
使用Basic Regular Expression,因此您无法立即访问+
量词。在现代(POSIX)grep
中,可以使用此功能,但它需要在量词之前使用反斜杠,例如\+
:
grep '-\+\\n-\+' file
(另请注意单引号以防止shell执行自己的反斜杠替换;并注意n
如何匹配自身,并且文字反斜杠与双\\
匹配以逃脱它或在一个字符类[\]
);或者您可以使用支持Extended Regular Expression的grep -E
(又名egrep
):
grep -E '-+\\n-+' file
对于记录,[\n]
匹配单个字符,可以是文字反斜杠或文字n
。这个结构称为字符类;莫名其妙地,新人似乎想要尝试使用方括号几乎是因为他们“看起来像正则表达式”,显然。