正则表达式
1.文件操作
2.1搜索有the的行,并输出行号。
grep -n ‘the’ 1.txt
搜索没有the的行,并输出行号。
grep -vn ‘the’ 1.txt
2.2利用[ ] 搜索集合字符,[ ]表示其中一个字符。
例: [ade] 表示a或d或e
grep -n ‘t[ae]st’ 1.txt
输出:8. I can’t finish test。
9.Oh! the suop taste good!
2.3用^符号做[ ]内的前缀,表示除了[ ] 内的字符之外的字符。
例:搜索oo前边没有g的字符串所在的行,使用’[ ^ g ]oo’做搜索字符串。
grep -n ‘[ ^ g ]oo’ 1.txt
输出:Football game。
[ ]内可以用范围表示,如[a-z]表示大小写字母,[0-9]表示数字,[A-Z]表示所有大写字母,[a-z0-9A-Z]表示所有的数字和字母,当然也可以匹配^来排除字符。
grep -n ‘[0-9]’ 1.txt
输出: 7. 1234
9. You are no.1
2.4行首与行尾字符 ^ $
^表示行的开头,$表示行的结尾(不是字符,是位置)这里 ^ 与[ ] 里面的使用 ^意义不同,它表示 ^ 后面的串是行的开头。
例:搜索the开头的行。
grep -n ’ ^ the ’ 1.txt
输出: 12. the synbd.
搜索以小写字母开头的行。
grep -n ’ ^ [ a-z ]’ 1.txt
输出: 3. abc
7. asdf
2.5任意一个字符,与重复的字符*
* 表示有0个或多个某个字符 。+ ?
例如:oo*,表示第一个o一定存在,第二个o可以有多个或一个甚至没有,因此代表至少有一个o
. 表示一个任意字符,必须在 . g??d 可以用 g…d 表示。 good,gxxd,gadd都符合。
例如:grep -n ‘g…d’ 1.txt
输出:9. taste good!
16. with ‘glad’
例:前两个o一定存在,第三个o可以没有,也可能有多个。
grep -n ’ ooo* ’ 1.txt
输出: 1. a good mechansim.