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可以,其他都可以。
为什么会出现这么古怪的规律?还希望大虾指点一二!先谢过!