自学内容网 自学内容网

正则表达式

正则表达式匹配的是文本内容,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也可以。贪婪模式,尽可能得匹配。

.*匹配前面的任意字符,至少有1次

\?匹配前面的字符

+匹配前面的字符,至少要出现一次>=1

\{n}配前面的字符=n次,可以小于n,但是不能大于n,而且前面的字符必须要连续出现。

\{m,N\}匹配前的字符至少m次,至多n次。必须是连续出现,超出的不再匹配范围

\{n,\}匹配前面的字符最少n次

\{,n\}匹配前面的字符最多n次

位置锚定:

^:以什么开头 行首锚定

$:以什么为结尾,行尾锚定

\<或者\b 词首锚定,匹配单词的左侧(连续的数字,字母,下划线都算单词内部)

\>或者\b 词尾锚定 用于匹配单词的右侧

\broot\b:匹配整个单词。空格隔开的也算整个单词。

^root$: 整个一行只有这个单词

区别

分组和逻辑关系

分组:()

或者: \

扩展正则表达

把基本正则表达式前面的\删除就是扩展正则表达式


原文地址:https://blog.csdn.net/yexiaoyex/article/details/139843331

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!