一、正则表达式
由特殊字符和文本字符组成编写模式。主要分类:
- 基本正则表达式BRE
- 元字符有:^$.[]*
- 作用:1、匹配字符;2、匹配字符次数;3、位置锚定
- 扩展正则表达式ERE
- 元字符有:(){}?+| (包括BRE)
- 必须使用
grep -E
才能生效
1.2正则表达意义:
- 处理大量的字符串 (提取关键字信息、文件信息、网站信息)
- 处理文本(替换功能)
- 正则表达式必须使用Linux三剑客去操作它。
二、Linux三剑客grep
grep
:文本搜索、过滤工具
2.1、grep练习
##首先连接文件passwd并打印输出到 pwd.txt文件中 [root@1-VM00013 ~]# cat /etc/passwd > ./pwd.txt ##开始搜索过滤,不区分大小写,查找pwd.txt文件中含有root字样的字符 [root@1-VM00013 ~]# grep -i "root" pwd.txt root:x:0:0:root:/root operator:x:11:0:operator:/root:/sbin/nologin dockerroot:x:988:98 ##把行号显示出来,查找pwd.txt文件中含有root字样的字符 [root@1-VM00013 ~]# grep -i -n "root" pwd.txt 1:root:x:0:0:root: 10:operator:x:11:0:operator:/root:/sbin/nologin 42:dockerroot:x: ##统计pwd.txt文本中,有多少行root有关的字符 [root@1-VM00013 ~]# grep -i "root" ./pwd.txt -c 3 [root@1-VM0001
##找出所有的非空行 思路是先找出所有的空行,然后结果取反 [root@1-VM00013 data]# cat luffy.txt I am linghu I teach linux i like python my name is linghu [root@1-VM00013data]# grep '^$' luffy.txt ##查看空行的行号: [root@1-VM00013 data]# grep '^$' luffy.txt -n 2: 4: 6: 8: ##把结果取反 [root@1-VM00013 data]# grep '^$' luffy.txt -n -v 1:I am linghu 3:I teach linux 5:i like python 7:my name is linghu
现在在文本中加入注释行,我们要排除注释行:
[root@1-VM00013 data]# grep '^$' luffy.txt -v | grep '^#' -v I am linghu I teach linux i like python my name is linghu
Linux三剑客(下)+https://developer.aliyun.com/article/1623587