8
A
回答
6
grep regex GNU extension:“\'”在整个输入的结束相匹配
-2
\是一个转义字符。这意味着'应该被视为文本来搜索,而不是作为控制角色。
3
这是一个非常奇怪的避风港grep
,我不知道如何解释它,但我必须注意,\'
不匹配任何字符。它看起来像它具有相同的含义$
:
$ 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
$
究竟怎么做。
3
我不知道正则表达式的这一特点。但它作为end of the string定位点在regular-expressions.info上列出。
它只存在于GNU Basic和Extended Regular Expressions的所有正则表达式中,请参见compatibility chart了解更多信息。
相关问题
- 1. 匹配模式并打印后匹配一个字的grep
- 2. 匹配使用grep并打印匹配的模式多种模式
- 3. 匹配的grep
- 4. 这是什么模式匹配?
- 5. 什么匹配模式// *目标?
- 6. 为什么此模式在匹配preg_match时与RewriteCond中的QUERY_STRING不匹配?
- 7. 为什么'csplit`和`grep`不一致就是否有匹配?
- 8. 为什么调用系统grep比在Ruby中匹配要慢?
- 9. 用grep匹配
- 10. 为什么lazy模式匹配splitAt函数的版本更快?
- 11. 为什么我的模式匹配在Scala中失败?
- 12. 为什么我的模式匹配集合在Scala中失败?
- 13. 什么是Rust中模式的定义,什么是模式匹配?
- 14. Ltac模式匹配:为什么`forall x,?P x`不匹配`forall x,x`?
- 15. Java模式这些模式匹配有什么问题?
- 16. 为什么Aeson没有模式匹配文本?
- 17. 为什么这个URL模式不匹配?
- 18. 为什么这些模式匹配重叠?
- 19. 为什么这种模式不匹配? ([\\\\ A \\\\ W]其中[\\\\ W \\\\ z])
- 20. Haskell:模式匹配(x:_):为什么列表头与x有界?
- 21. Java:为什么我们从模式获得匹配器
- 22. 为什么类型类而不是模式匹配?
- 23. 为什么在(匹配)中没有(dict(k v)...)模式?
- 24. 替换为模式匹配
- 25. 试图匹配与grep相同的行上的多个模式
- 26. 模式匹配不匹配
- 27. grep:匹配文字“+”
- 28. grep匹配模式并保存到不同的文件
- 29. 使用grep匹配字符串的变化模式
- 30. 使用grep的Perl多行模式匹配
但即使文本文件不包含单引号字符,grep仍然匹配文件中的所有行。我认为这是OP所要求的。 – theon 2012-07-28 08:48:54
是的,这很奇怪,grep匹配字面单引号的所有输入 – perreal 2012-07-28 08:51:07