正则表达式

正则表达式匹配的是文本内容,linux的文本三剑客 都是针对文本内容

grep 过滤文本内容

sed 针对文本内容进行增删改查

awk 安行取列

文本三剑客。都是按照行进行匹配。

grep的作用就是使用正则表达式来匹配文本内容。

选项:

-m 匹配几次之后停止

-m 数字

-v 取反

-n 显示匹配的行号

-c 只统计匹配的行数

-o 仅显示匹配的结果

-q静默模式,不输出任何信息'

-A after 数字,后几行

-B before 数字,数字,之间的行

-C 数字 前后各几行

-e 或者

-E 匹配扩展正则表达式

-f 匹配两个文件相同的内容,以第一个文件为准。

-r 递归目录 目录下的文件内容。软链接不不包含在内

-R 递归目录 目录下的文件内容。包含软连接

排序:

sort

以行为单位,对文件的内容进行排序

sort 选项 参数

cat file | sort 选项

-f 忽略大小写,默认会把大字母

-b 忽略每行之前的空格(不是把空格删除,只是依然按照数字和字母的顺序排列)

-n 按照数字进行排序

-r 反向排序

-u 相同的数据仅显示一行

-o 把排序后的结果转存到指定文件

uiiq去除连续重复的行,只显示一行

-c 统计连续重复·的行的次数,合并连续重复的行

-u 仅显示出现一次的行(包括不是连续出现的重复行)

-d 仅显示连续重复的行(不包括非连续出现的·内容)

tr:用来对标准输出的字符进行替换,压缩和删除

tr 选项 参数

-c 保留字符集1的字符,其他的字符用字符集2进行替换

-d 删除字符集中的一部分

-s 把字符集1的部分替换成字符集2的部分,把连续重复出现的字符压缩成一个字符

-s把原来的字符串替换成其他

cut 快速裁剪 awk都可以按行去列。

对字段进行截取和裁剪。

-d 指定分隔符 (默认的分割符是tab)

-f 对字段进行截取,指定输出段的内容

-complement 输出的时候排除制定的字段

-out

-b 以字节为单位进行截取

-c 以字符为单位进行截取

文件的拆分:

split 大文件拆分成若干小的文件

-l 按行来进行分割

-b 按照大小进行分割

面试题:

现在有一个日志文件,很大,5g,第一个能不能快速地打开?

拆分:-l 按行 -b大小

这种文件推荐使用按大小

文件合并:

cut想·

paste

面试题:

cat合并和paste合并之间有什么区别

cat是上下合并

paste是左右合并

面试题:

ss -antp | grep -v "State" | cut -d " " -f 1 | sort |uniq-c

正则表达式:由一特殊字符所编写的一个模式。模式又来匹配大文件内容(字符)

校验我们输入的内容是否满足规定,格式长度等等

主要用来匹配文本内容。命令结果

通配符:只能用于匹配文件名和目录名。不能匹配文件的命令结果

正则表达式:

基本正则表达式

元字符 (字符匹配)

.任意单个字符

\转义符 恢复其本意

\]匹配指定范围内的 \[\^\]取反\^ 表示次数,匹配字符出现的次数: \*匹配前面的字符任意次,0也可以。贪婪模式,尽可能得匹配。 ![](https://img-blog.csdnimg.cn/direct/eada627e6eb84fc8b0379753f6b23511.png) .\*匹配前面的任意字符,至少有1次 ![](https://img-blog.csdnimg.cn/direct/5388d3b75dcc415ab7fcadfdc488c7a6.png) \\?匹配前面的字符 +匹配前面的字符,至少要出现一次\>=1 \\{n}配前面的字符=n次,可以小于n,但是不能大于n,而且前面的字符必须要连续出现。 \\{m,N\\}匹配前的字符至少m次,至多n次。必须是连续出现,超出的不再匹配范围 \\{n,\\}匹配前面的字符最少n次 \\{,n\\}匹配前面的字符最多n次 位置锚定: \^:以什么开头 行首锚定 ![](https://img-blog.csdnimg.cn/direct/a65a9a20c4ee48c5b029877bdaf69767.png) $:以什么为结尾,行尾锚定 ![](https://img-blog.csdnimg.cn/direct/7636274250bc4922bd78d56b7253b731.png) \\\<或者\\b 词首锚定,匹配单词的左侧(连续的数字,字母,下划线都算单词内部) \\\>或者\\b 词尾锚定 用于匹配单词的右侧 \\broot\\b:匹配整个单词。空格隔开的也算整个单词。 \^root$: 整个一行只有这个单词 区别 分组和逻辑关系 分组:() ![](https://img-blog.csdnimg.cn/direct/b215eb36606349859d1de51b786aeb55.png) 或者: \\ ![](https://img-blog.csdnimg.cn/direct/1f4de7089dc347f5947581bdec09170e.png) **扩展正则表达** 把基本正则表达式前面的\\删除就是扩展正则表达式

相关推荐
無限進步D2 小时前
Java 运行原理
java·开发语言·入门
難釋懷2 小时前
安装Canal
java
是苏浙2 小时前
JDK17新增特性
java·开发语言
Mike117.2 小时前
GBase 8a 日期边界写法和时间窗口取数偏差
数据库
SPC的存折3 小时前
1、Redis数据库基础
linux·运维·服务器·数据库·redis·缓存
爱学习的小囧4 小时前
VMware ESXi 6.7U3v 新版特性、驱动集成教程和资源包、部署教程及高频问答详情
运维·服务器·虚拟化·esxi6.7·esxi蟹卡驱动
小疙瘩4 小时前
只是记录自己发布若依分离系统到linux过程中遇到的问题
linux·运维·服务器
dldw7775 小时前
IE无法正常登录windows2000server的FTP服务器
运维·服务器·网络
阿里加多5 小时前
第 4 章:Go 线程模型——GMP 深度解析
java·开发语言·后端·golang
likerhood5 小时前
java中`==`和`.equals()`区别
java·开发语言·python