grep 特殊字符

发布时间:2012-08-20 16:15:13来源:红联作者:只抽七块骄子

首先看看^ $:

$ grep -n '\^' grep.txt

$ grep -n ‘^’ grep.txt

$ grep -n "^" grep.txt

$ grep -n "\^" grep.txt

第一条和最后一条都是匹配该行含有^字符,而中间两行都是输出全部行,同理如$。

再看. “ * [ ] ( ) | \ + ?

$ grep -n '.' grep.txt

$ grep -n '\.' grep.txt

$ grep -n "." grep.txt

$ grep -n "\." grep.txt

第一条和第三条输出全部行,另外两条输出含有.的行。

以上四种形式的命令都可以输出含有* + ?的行。

以上四种形式的命令,不加\的命令行可以输出含有|的行,加\则输出全部行。

$ grep -n '\' grep.txt

grep: Trailing backslash

$ grep -n '\\' grep.txt

31:\

$ grep -n "\" grep.txt

> -bash: unexpected EOF while looking for matching `"'

-bash: syntax error: unexpected end of file

$ grep -n "\\" grep.txt

grep: Trailing backslash

$ grep -n '[' grep.txt

grep: 无效的常规表达式

$ grep -n '\[' grep.txt

27:[

$ grep -n "\[" grep.txt

27:[

$ grep -n "[" grep.txt

grep: 无效的常规表达式

$ grep -n "(" grep.txt

35:(

$ grep -n "\(" grep.txt

grep: 不匹配的 ( 或 \(

$ grep -n '\(' grep.txt

grep: 不匹配的 ( 或 \(

$ grep -n '(' grep.txt

35:(

对于”,除了 $ grep -n """ grep.txt不可以,其他都可以。

对于’,除了$ grep -n "'" grep.txt可以,其他都可以。

为什么会出现这么古怪的规律?还希望大虾指点一二!先谢过!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐