一、正则表达式
1、正则表达式的定义
正则表达式,又称正规表达式、常规表达式
使用字符串来描述、匹配一系列符合某个规则的字符
正则表达式组成:
普通字符:
大小写字母、数字、标点符号及一些其他符号
元字符:
在正则表达式中具有特殊意义的专用字符
2、基础正则表达式元字符
基础正则表达式是常用的正则表达式部分
除了普通字符外。常见到以下元字符:
\: 转义字符,\! 、\n等
^: 匹配字符串开始的位置
例:^a、^the、^#
$:匹配字符串结束的位置
例:word$
.: 匹配除\n之外的任意的一个字符
例:go.d、g..d
*:匹配前面子表达式0次或者多次
例:goo*d、go.*d
[list]:匹配lisit列表中的一个字符
例:go[ola]d,[abc]、[a-z]、[a-z0-9]
[^list]:匹配任意不在list列表中的一个字符
例: [^a-z]、[^0-9]、[^A-Z0-9]
\{n,m}:匹配当前的子表达式n到m次,有\{n\}、\{n,\}、\{n,m\}三种格式
例:go\{2\}d、go\{2,3\}d、go\{2,\}d
3、扩展正则表达式元字符
扩展正则表达式是对基础正则表达式的扩充深化
扩展元字符
+: 匹配前面子表示1次以上
例:go +d,将匹配至少一个O
?:匹配前面子表示0次或者1次
例:go?d,将匹配gd或god
():将括号中的字符串作为一个整体
例:(xyz)+将匹配xyz整体1次以上,如xyzxyz
|:以或的方式匹配字条串
例1:good|food,将匹配good或者food
例2:g(oo|la)d,将匹配good或者glad
4、grep
(1)格式:【选项】.......查找条件 目标文件
(2)常用参数
-E:开启扩展(extend)的正则表达式
-c:计算找到'搜寻字符串'的次数
-i:忽略大小写的不同,所以大小写视为相同
-o:只显示被模式匹配到的字符串
-v:反向选择,亦即显示出没有'搜索字符串'内容的那一行!(反向查找,输出与查找条件不相符的行)
--color=auto :可以将找到的关键词部分加上颜色显示
-n :顺便输出行号
(3)示例一:grep -c 统计搜索到的字符次数
(4)示例2:grep -n '^$' mkd2fs.conf #搜索出文本的空格行并显示行数
(5)示例3:搜索两个-多个为0的数
(6)示例4:搜索w 开头d结尾中间两位为任意数的字符串
(7)示例4:搜索w 开头d结尾中间n位为任意数的字符串
(8)示例5
(9)示例6
(10)示例7
(11)示例8
(12)示例9
(13)示例10
![](https://img-blog.csdnimg.cn/3dc54bfc2a5e4eb79ce3583386eb6b38.png)
(14)示例11![](https://img-blog.csdnimg.cn/7d0e5d29e01444d6beb3f234e995011d.png)
(15)示例12
过滤出除了大写字母的所有信息
(16)示例13
(17)示例14
需求:1、首先查到列出所有log文件并且重定向给grep
2、使用grep 查找error 的行
3、使用grep 来查找不包含info 的行
2、cut命令
-d:是以什么为分隔符
-f : 表示分隔出来的第几个参数
-c:可用于分隔中文字符
3、sort命令
是一个以行为单位对文件内容进行排序的工具,也可以根据不同的数据类型来排序。例如数据和字符的排序是不同的
(1)格式
sort [选项] 差数
(2)常用选项
sort -t:指定分隔符,默认使用tab键 或空格分隔。
-k:指定排序区域,哪个区间排序
-n:按照数字进行排序,默认是以文字形式排序
-u:等同于uniq,表示相同的数据仅显示一行,注意,如果行尾有空格去重就不成功
-o:将排序后的结果转存至指定文件
(3)示例1:sort passwd #排序默认为字母a-z排序
(4)示例2:sort passwd -t: -k4 passwd #已冒号为分隔符,已数字大小对第四列排序(升序)
(降序)
sort -nr -t :-k3 passwd
-nr 表示反向排序
-t : 表示以:为分隔符
-k3 表示第三项
(5)示例3 sort -u a.txt #对文本进行去重处理
4、uniq命令
主要用于去除连续的重复行
注意: 是连续的行,所以通常和sort结合使用先排序使之变成连续的行再执行去重操作,否则不连续的重复行他不能去重。
(1)格式
uniq [选项] [参数]
(2)常用选项
-c:对重复的行进行计数
-d:仅显示重复行
-u:仅显示出现一次的行
(3)示例
5、tr命令
(1)格式
tr 【选项】... SET1 [SET2]
从标准输入中替换、缩减和/或输出字符,并将结果写到标准输出。
(2)常用选项
-d 输出字符
-s 删除所有重复出现的字符,只保留第一个
(3)示例