一、搜寻特定字符串
1)普通查找
grep -n 'the'regular_express.txt
2)反向选择
grep -vn 'the'regular_express.txt
3)忽略大小写
grep -in 'the'regular_express.txt
二、利用中括号[] 来搜寻集合字符
- 搜寻 test OR taste
grep -n 't[ae]st' regular_express.txt
说明:[ ]里面不管有几个字符,他都仅代表某[一个]字符
- 搜寻'oo'但前面不要'g'
grep -n '[^g]oo' regular_express.txt
说明:集合取反[^]
- 简单集全的示例
#取出有数字的一行
grep -n '[0-9]' regular_express.txt
grep -n '[[:digit:]]' regular_express.txt
三、行首与行尾字符
- 行首字符:^
- 行尾字符:$
- 简单示例
#行首为'the'的行
grep -n '^theregular_express.txt
#行首为小写的行
grep -n '^[a-z]' regular_express.txt
#行首不为英文字母的行
grep -n '^[^a-zA-Z]' regular_express.txt
grep -n '^[^[:alpha:]]' regular_express.txt
说明:^在[]里和在[]外意义是大不相同的,在[]中代表取反,在外面代表行首
#行尾为小数点的一行
grep -n '\.$' regular_express.txt
说明:因为小数点具有其他意义,所以必须要使用跳脱字符(\)来加以解除其特殊意义
#查找空行
grep -n '^$' regular_express.txt
#过滤空行和#号开头的行
grep -v '^$' /etc/syslog.conf | grep -v '^#'
四、任意一个字符. 与重复字符 *
- .代表一定有一个任意字符
*代表重复前一个字符0到任意次
- 简单示例
#查找起头是 g 而结束是 d 的四字串
grep -n 'g..d' regular_express.txt
#查找有有连续两个o以上的字符串
grep -n 'ooo*' regular_express.txt
#找出 g 开头 g 结尾的字符串,当中的字符可有可无
grep-n 'g.*g' regular_express.txt
说明: .* 表示0个或多个任意字符
五、限定连续RE 字符范围 {}
- 找到两个0的字符串
grep -n 'o\{2\}' regular_express.txt
- 找出g 后面接2 到 5 个 o ,然后再接一个 g 的字符串
Grep -n 'go\{2,5\}g'regular_express.txt
- 找出2个o以上的gooooo...g
grep -n 'go\{2,\}g' regular_express.txt