答案 0 :(得分:6)
grep regex GNU extension:'\''匹配整个输入的结尾
答案 1 :(得分:3)
这是一个非常奇怪的grep
beaviour,我不知道如何解释它,但我必须注意\'
与任何角色都不匹配。看起来它与$
具有相同的含义:
$ echo x | grep "x\'"
x
$ echo xy | grep "x\'"
$ echo x | grep "\'x"
更新1
正如http://www.gnu.org/software/findutils/manual/html_node/find_html/grep-regular-expression-syntax.html中所述(感谢Richard Sitze的链接),它与$
具有相同的含义。但同时我注意到\'
和$
之间存在差异:
$ echo x | grep 'x$'
x
$ echo x | grep 'x$$'
$ echo x | grep "x\'"
x
$ echo x | grep "x\'\'"
x
$ echo x | grep "x\'\'\'"
x
您可以根据需要多次指定\'
,但$
则不然。必须只有一个$
。
另一个重要的评论。手册说:
‘\'’ matches the end of the whole input
但严格来说,这不是真理,因为\'
不仅匹配整个输入的结尾,还匹配每一行的结尾:
$ (echo x; echo y) | grep "\'"
x
y
$
的具体方式。
答案 2 :(得分:3)
我不知道正则表达式的这个功能。但它在regular-expressions.info中列为end of the string锚。
仅在GNU Basic和Extended Regular Expressions中的所有正则表达式实现中都不存在,有关详细信息,请参阅此compatibility chart。
答案 3 :(得分:-2)
\是一个转义字符。这意味着'应该被视为要搜索的文本,而不是控制角色。