正则表达式

正则表达式匹配的是文本内容,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) **扩展正则表达** 把基本正则表达式前面的\\删除就是扩展正则表达式

相关推荐
C灿灿数模7 分钟前
2025五一杯数学建模C题:社交媒体平台用户分析问题;思路分析+模型代码
数据库·人工智能·python
黄雪超15 分钟前
JVM——Java的基本类型的实现
java·开发语言·jvm
工业互联网专业18 分钟前
基于web的可追溯果蔬生产过程的管理系统
java·vue.js·spring boot·毕业设计·源码·课程设计·可追溯果蔬生产过程的管理系统
程序猿大波1 小时前
基于Java,SpringBoot,HTML水文水质监测预警系统设计
java·开发语言·spring boot
A_Tai23333332 小时前
Linux-04-搜索查找类命令
linux·运维·服务器
海鸥812 小时前
在K8S迁移节点kubelet数据存储目录
java·kubernetes·kubelet
jackson凌2 小时前
【Java学习笔记】递归
java·笔记·学习
小昔超厉害2 小时前
DBeaver虚拟主键会影响实际的数据库吗
数据库·oracle
鑫—萍2 小时前
C++——入门基础(2)
java·开发语言·jvm·数据结构·c++·算法