|
|
一、文本搜索工具 grep,egrep,fgrep
1、globbing:文件名通配:*,?,[],[^]
2、过滤条件,以行为独立单位
模式:以正则表达式的元字符以及正常字符组合而成.
grep 文本搜索工具,根据用户指定的文本模式(正则表达元字符及正常字符组成而成)对目标文件进行 逐行搜索,显示匹配的行
--color=auto,always,never
-0:只显示被匹配到的内容
-i:忽略大小写
-v:显示不能够被模式匹配到的行
-E:使用扩展的正则表达式 相当于egrep
-A N:
-B N:
-C N:
-n:显示行号
二、正则表达式
正则表达式:REGEXP
是由元字符及正常字符所书写的模式,其中的元字符不表示字符本身的意义,而是用于表达控制或通配等功能
基本正则表达式:grep
扩展正则表达式:grep -E,egrep
基本正则表达式元字符:
1、字符匹配:
. :匹配任意单个字符
[]:匹配指定范围内的单个字符
[^]:匹配指定范围外的任意单个字符
2、次数匹配:在期望匹配字符后面提供一个控制符,用于表达匹配其前面字符指定次数
*:任意次数
.*:任意次数的任意字符
工作于贪婪模式
\?:0次或1次,表示其前面字符可有可无
\+:1次或多次,表示其前面字符至少出现1次
\{m\}:m次,表示其前面字符精确出现M次
\{m,n\}:至少m次,最多N次
\{0,n\}:至多n次
\{n,\}:至少n次
3、位置锁定:
^:锁定行首 ^PATTERN
$:锁定行尾 PATTERN$
^PATTERN$:匹配整行
^$:匹配空白行 注意:"^[[:space:]]*$"表示的意义
4、单词锁定:由非特殊字符组成的连续的字符串
\<:锁定词首 \<PATTERN 或 \bPATTERN
\>:锁定词尾 PATTERN\> 或 PATTERN\b
\<PATTERN\>:匹配PATTERN能匹配到的整个单词 #ifconfig | grep "\<[0-9]\{2\}>\>"
5、分组:\(PATTERN\) "\(ab\)*c"
注意:分组中的模式,在某次的具体匹配过程中所匹配到的字符,可以被grep 记忆(保存在内置变量中\1,\2、、、、\n)因此可以被引用。
\1:引用,模式中自左而右,由第一个左括号以及与之对应的右括号内的内容
\2:引用,模式中自左而右,由第一个左括号以及与之对应的右括号内的内容
"\(a.b).*\1" 能匹配amb hello anb 吗? "\(ab\(cd\)mn\)\1\2"
扩展的正则表达式:
字符匹配:和基本的正则表达式一样
次数匹配:和基本的正则表达式一样,不用加\
位置锁定: 和基本的正则表达式一样
分组:和基本的正则表达式一样,()不用加\
或者:a|b:a或b abc|Cba,ab(c|C)ba
|
|