正则表达式就是一个字符串,有一定的规律。

使用工具:grep、sed、awk。


grep

  --color              显示颜色

     -n                   显示行号

     -c                   显示行数

     -v                   取反

     -A  数字             显示符合行,同时显示符合行下面的n条行      

     -B  数字             显示符合行,同时显示符合行上面的n条行

     -C  数字             显示符合行,同时显示符合行各上下面的n条行

     -r                   遍历目录

     -h                   遍历目录时,结果不显示文件名,和-r一起连用

     -i                   不区分大小写


grep  主要用于过滤包含字符的所在行。

[root@wy ~]# grep 'root' /etc/passwd

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin


显示颜色和行号

grep过滤_grep过滤


显示符合的行数

[root@wy ~]# grep -c 'root' /etc/passwd

2


显示符合行并同时显示符合行下面的n条行

grep过滤_grep过滤_02


显示符合行并同时显示符合行上面的n条行

grep过滤_grep过滤_03


显示符合行并同时显示符合行各上下面的n条行

grep过滤_grep过滤_04


过滤不包含此字符的

grep过滤_grep过滤_05


过虑包含数字的

grep过滤_grep过滤_06


过滤包含指定字符的

[root@wy ~]# grep --color '[yN]' /etc/passwd


过虑所有字母的

[root@wy ~]# grep  '[a-zA-Z]' /etc/passwd


匹配以字母开头的行

grep过滤_grep过滤_07


匹配以数字开头的行

[root@wy ~]# grep --color '^[0-9]' /etc/passwd


匹配不包含数字的行'[^0-9]'

grep过滤_grep过滤_08


匹配不以数字开头的行

grep过滤_grep过滤_09


匹配空行

[root@wy ~]# grep '^$' /etc/passwd


. 表示任意一个字符

grep过滤_grep过滤_10


*表示0个或多个*前面的字符

grep过滤_grep过滤_11


.*任意字符(贪婪匹配)

grep过滤_grep过滤_12


?表示0或1个问号前面的字符(得用\先脱义一下)

grep过滤_grep过滤_13


但不想用脱义符,可以加-E选项,一样的效果(grep -E==egrep)

grep过滤_grep过滤_14


注:如果vim编辑文件时异常退出了,还在vim界面下,会产生一个临时的swp的文件,可以把它删掉。


+ 表示1个或多个加号前面的字符(+也是特殊字符,也需要转义,可以使用egrep不需要转义)

grep过滤_grep过滤_15


| 表示或者

grep过滤_grep过滤_16


表示并且不能用&,只能这样写

grep过滤_grep过滤_17


()表示括号里的是一个整体

grep过滤_grep过滤_18


(){}表示一个范围,指定次数

grep过滤_grep过滤_19


总结:? +  |  ()  {}  这些特殊符号需要脱义