Linux中正则表达式等

grep命令:主要作用就是过滤查找文本内容

常用的选项有:

-m 数字:匹配几次之后停止,按行匹配,不是按字符个数,例如

-v:取反

例如:

Linux中正则表达式等_第1张图片

-n:显示匹配的行号

例如:

-c:仅显示匹配的行数,不显示匹配内容

例如:

-o:仅显示匹配的内容

例如:

Linux中正则表达式等_第2张图片

-q:静默模式,只输出,无结果

例如:

-A 数字:After 后几行

例如:

Linux中正则表达式等_第3张图片

-B 数字:显示匹配到的行,以及前几行

例如:

Linux中正则表达式等_第4张图片

-C 数字:匹配前后个几行

例如:

Linux中正则表达式等_第5张图片

-e :实现多个过滤条件之间的逻辑或关系

例如:

Linux中正则表达式等_第6张图片

-w:匹配整个单词

例如:

-E:使用扩展正则表达式

例如:

Linux中正则表达式等_第7张图片

-f:根据模式文件进行匹配,匹配两个文件相同的内容

例如:相同的内容会标红

Linux中正则表达式等_第8张图片Linux中正则表达式等_第9张图片

Linux中正则表达式等_第10张图片

-r :递归目录,但是不处理软连接。匹配目录中文本的内容

例如:Linux中正则表达式等_第11张图片

-R:递归目录,这是处理软连接。匹配目录中文本的内容

例如:Linux中正则表达式等_第12张图片

文本三剑客:grep主要的就是查

sed主要是增和改

awk按行取列

都是针对文本的内容

sort:按照行对文件内容进行排序。也可以根据不同的数据类型进行排序

用法格式:

1.sort 选项 参数

2.cat 文件名 | sort 选项

常用的选项有:

假如:test1.txt文本内容是:

Linux中正则表达式等_第13张图片

-f :忽略大小写,默认会把大写字母排在前面

例如:

Linux中正则表达式等_第14张图片

-b:忽略每行前面的空格

例如:

Linux中正则表达式等_第15张图片Linux中正则表达式等_第16张图片

-n :按照数字进行排序

例如:

Linux中正则表达式等_第17张图片Linux中正则表达式等_第18张图片

-r:反向排序

例如:Linux中正则表达式等_第19张图片

-u:相同的数据只显示一行。也就是去重

例如:

Linux中正则表达式等_第20张图片

-o:将排序后的文件内容转存到指定文件

例如:Linux中正则表达式等_第21张图片

uniq:也是按行进行处理。作用就是连续重复的行进行去重

Linux中正则表达式等_第22张图片

Linux中正则表达式等_第23张图片

用法格式:

1、uniq 选项 参数

2、cat 文件名 | uniq 选项

常用的选项有:

-c:统计连续重复出现的行的次数,并且合并重复的行,并展示

例如:

Linux中正则表达式等_第24张图片

-u :显示仅出现一次的行

例如:

Linux中正则表达式等_第25张图片

-d:显示仅重复出现的行

例如:

Linux中正则表达式等_第26张图片

tr:字符替换 压缩 删除

用法格式:

1、tr 选项 参数

2、cat 文件名 | tr 选项

常用的选项有:

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

例如:

-d:删除字符集

例如:

-s:可以将重复出现的字符串压缩为一个字符串

例如:

-t: 默认的,可以不加,这是替换。字符集2替换成字符集1

例如:

实验:将PATH中的:替换成空格

实验:将PATH中的:替换成换行

Linux中正则表达式等_第27张图片

cut: 快速裁剪,也就是对字段进行截取与裁剪

用法格式:

1、cut 选项 参数

2、cat 文件 | cut 选项

常用的选项:

-d:指定裁剪的分隔符(默认的分隔符是tab的空格)

-f:按行取列,根据第几个字段进行截取

例如:

什么到什么是:1-3

什么和什么是:1,3

Linux中正则表达式等_第28张图片

Linux中正则表达式等_第29张图片

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

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

-b 和-c :不咋用就不演示了

--complement :排除所指定的字段

例如:

--output-delimiter: 更改输出结果的分隔符

例如:

面试题:如何对文件进行拆分:

现有一个日志文件,很大将近5G,直接打开速度很慢,有什么办法优化呢?

文件进行拆分:

splie可以将大文件拆分成若干小文件gr

-l:指定行数进行拆分

例如:

Linux中正则表达式等_第30张图片

-b:指定大小进行拆分

例如:

Linux中正则表达式等_第31张图片

真正工作最好以下方法使用

Linux中正则表达式等_第32张图片

面试题:合并文件

cat合并和paste有什么区别:

cat合并是上下合并

paste合并是左右合并

工作中肯定是cat合并更好

实验:统计当前主机的连接状态:

Linux中正则表达式等_第33张图片

答案:

实验:统计当前主机的连接数

[root@test1 opt]# ss -nt | tr -s " " | cut -d " " -f 4 | sort -n | uniq -c

以上都是针对文件的内容进行操作

正则表达式:由一类特殊字符以及文本字符所编写的模式

其中有些字符不表示字符字面的含义。而表示控制或者通配的功能,用来处理文本内容当中的字符

也就是由一些特殊字符组成的特定格式的内容,用来匹配文件当中的内容。

问题1:ls输出的内容算不算文本内容

答案:算

PS:Linux中所有命令所显示的所有有内容,都算是文本内容

Linux当中的通配符:通配符用来匹配文件名或者目录名。

*:任意一个或者多个字符。

例如:

?:只能匹配任意一个字符

例如:

[]:范围匹配

例如:

Linux中正则表达式等_第34张图片

正则表达式:

元字符:

. :匹配任意单个字符,或者是一个汉字

例如:

Linux中正则表达式等_第35张图片

\ :转义符

例如:

Linux中正则表达式等_第36张图片

():分组的意思 \(\)

() 使用转义符,只表示()

[]:匹配指定范围内的单个字符

Linux中正则表达式等_第37张图片

[[:blank:]]:匹配空格和制表符

[^a] :除了a以外,取反

例如:

所有的元字符:

. 匹配任意单个字符,可以是一个汉字

() 使用转义符,只表示\(\)

[] 匹配指定范围内的任意单个字符,示例:[dn] [0-9] [] [a-zA-Z]

[^] 匹配指定范围外的任意单个字符,示例:dn a.z

[:alnum:] 字母和数字 [0-9] [a-z] [0-9] [a-z]

[:alpha:] 代表任何英文大小写字符,亦即 [A-Z], [a-z]

[:lower:] 小写字母,示例:[[:lower:]],相当于[a-z]

[:upper:] 大写字母 [A-Z]

[[:blank:]] 空白字符(空格和制表符)

[:space:] 包括空格、制表符(水平和垂直)、换行符、回车符等各种类型的空白,比[:blank:]包含的范围广

[:cntrl:] 不可打印的控制字符(退格、删除、警铃...)

[:digit:] 十进制数字

[:xdigit:]十六进制数字

[:graph:] 可打印的非空白字符

[:print:] 可打印字符

[:punct:] 标点符号

\w #匹配单词构成部分,等价于[[:alnum:]]

\W #匹配非单词构成部分,等价于[^[:alnum:]]

\S #匹配任何非空白字符。等价于 \f\n\r\t\v。

\s #匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

表示次数:

*:表示匹配前面的字符任意次,包括0次。尽可能长的匹配

例如:Linux中正则表达式等_第38张图片

.*:匹配前面的任意字符任意次,但是不包括0次

例如:

\?:表示匹配前面的字符出现0次或者一次

例如:Linux中正则表达式等_第39张图片

\+:匹配前面出现的字符最少一次,最多任意次。也就是>=1

例如:Linux中正则表达式等_第40张图片

\{n\}:表示前面的字符只能出现=n次

例如:Linux中正则表达式等_第41张图片

\{n,m\}:表示前面的字符最少有n次,最多有m次

例如:Linux中正则表达式等_第42张图片

\{,n\}:表示前面的字符,最多有n次,0次也算

例如:Linux中正则表达式等_第43张图片

\{n,\}:表示前面的字符,最少有n次

例如:Linux中正则表达式等_第44张图片

实验:将ifconfig ens33中的地址与子网掩码还有广播地址单独列出来

你可能感兴趣的:(linux,正则表达式,mysql)