「这是我参与11月更文挑战的第14天,活动详情查看:2021最后一次更文挑战」
1.正则表达式(regular expression-RE)
练习的模拟环境:
1 | csharp复制代码cat >>oldboy.txt<<EOF |
基础正则表达式 - basic regular expression - BRE
1)^ — 以什么开头的信息找出来
1 | csharp复制代码测验一:找出以m开头的文件内容信息 |
2)$ — 找出以什么什么结尾的信息过滤出来
1 | csharp复制代码测验练习二:找出以m结尾的内容信息 |
3)^$ – 找寻匹配空行信息(进行过滤)
测验练习题三:过滤空行信息
1 | csharp复制代码[root@fu ~]# grep -v '^m$' oldboy.txt -v == ! |
4). – 匹配任意一个字符信息且只能是一个字符信息(无法匹配空行信息)
1 | csharp复制代码grep '.' oldboy.txt |
5)* – 匹配0个或1次以上连续的字符信息(表示前一个字符连续出现1次或0次以上)
1 | csharp复制代码grep '0*' oldboy.txt |
6).* — 匹配文件中的所有内容(可以匹配空行信息)
grep ‘.*‘ oldboy.txt
测验xx:请找出文件中以m开头,一行中所有信息
1 | csharp复制代码[root@fu ~]# grep '^m.*' oldboy.txt |
测验xx:请找出文件中以m开头,到m字符终止匹配
1 | csharp复制代码[root@fu ~]# grep '^m.*m' oldboy.txt |
- \ – 转移符号(中文–英文 英文–中文)
作用:
可以将有意义的符号,转换成没有意义 .
可以将没有意义的符号,转换成有意义的 \n
.(匹配任意字符)– . –加个撬棍一个点表示字符信息 – . –取消转译
测验练习题:将下面文件中一行信息,转换成一列显示
1 | csharp复制代码01 02 03 04 05 |
- [^abc] – 排除/不匹配 指定字符信息
1 | csharp复制代码[root@fu ~]# grep "[^a-z]" oldboy.txt |
测验xx:找出以.结尾的相应行的信息
grep ‘.$’ oldboy.txt
扩展正则表达式 - extended regular expression - ERE
- — 匹配1个或1次以上连续的字符信息
1 | csharp复制代码[root@fu ~]# egrep '0*' --color oldboy.txt |
9)[]+ 组合的用处
1 | csharp复制代码[root@fu ~]# grep "[0-9]" oldboy.txt -o |
10)| 表示匹配多个满足条件的信息(彼此之间是或者关系)
egrep ‘o|y|t’ oldboy.txt
11)() 匹配一个整体信息(字符串信息) [a,usgduagd] 匹配中括号里面的一个一个元素信息
1 | scss复制代码 表示匹配一个整体消息 egrep 'oldb(o|e)y' 表示过滤整体信息 |
本文转载自: 掘金