grep
文本处理工具之grep、egrep:
grep: (global search regular expression and print out the line)
格式:grep [options] ‘PATTERN‘ file
选项:
--color 指定颜色
-v: 反向匹配,显示不能被模式匹配到行
-o: 仅匹配被模式匹配到的字串,而非整行
-i: 不区分大小写,ignore-case
-E: 支持扩展
-A #: 还显示模式下面的一行
-B #: 还显示模式上面的一行
-C #: 前后各显示一行
正则表达式:是一类字符所书写出的模式(pattern)
元字符:类似通配符,不表示字符本身的意义,用于额外功能性的描述
基本正则表达式的元字符:
.: 任意单个字符
[]: 指定范围内的任意单个字符
[0-9],[[:digit:]]
[a-z],[[:lower:]]
[A-Z],[[:upper:]]
[[:alpha:]] 所有字母
[[:alnum:]] 字母+数字
[[:space:]] 空格
[^]: 指定范围外的任意单个字符
次数匹配:用来指定匹配其前面的字符的次数
*: 任意次; 例子:x*y xxy xy y 都能匹配
.*: 匹配任意长度的任意字符
\?: 前面字符出现0次或者1次
\{m\}: 匹配m次
\{m,n\}: 至少m次,至多n次
\{m,\}: 至少m次
\{0,n\}: 至多n次
位置锚定:用于指定字符出现的位置
^: 锚定行首
$: 锚定行尾
^$: 空白行
单词的位置锚定:
\<char: 锚定词首, \b
char\>: 锚定词尾, \b
分组:
\(\), 例子:\(ab\)*xy
引用:
\1:向后引用,引用前面的第一个左括号以及与之对应的右括号中的模式匹配的内容,意思是说前面出现一次,在\1这也要出现一次。
egrep: 使用扩展正则表达式来构建模式,相当于grep -E
元字符:
字符匹配:
.: 任意单个字符
[]: 指定范围内的任意单个字符
[^]: 指定范围外的任意单个字符
次数匹配:
*:匹配其前面的字符任意次
?: 匹配其前面的字符0次或1次
+: 匹配其前面字符至少一次
{m}: 匹配其前面字符至少m次
{m,n}: 至少m次,至多n次
{m, }: 至少m次
{0,n}: 至多n次
分组:
(): 分组
|: 或者,ac|bc 或者 bc