正则表达式

正则表达式:

对内容进行增删改查:

Linux的文本三剑客:

grep过滤(查找文本内容--正则表达式-一块使用)查

sed改

awk对行进行取列,AWK自带编程,类java

这三个都是根据文件内容

grep命令都是对来进行处理的

-m 多个匹配值,取第一个。 m后面一定要加数字

-n 显示匹配内容以及显示匹配行号

-o 仅显示匹配到的字符串,不在输出其他内容

-A after后几行,显示匹配到行记忆匹配的后几行,自定义的

-B before 前几行,显示匹配到的行以及他的前几行,自定义

-C 前后个几行,以及上下各几行,方便对日志内容进行过滤

-e 实现逻辑或的关系

-E 使用正则表达式

-f 过滤出两个文件相同的内容(以第一个文件为标的)

-r 递归目录下,所有包含过滤内容的文件以及匹配的内容行,但是不处理软连接

-R 递归目录下,所有包含过滤内容的文件以及匹配的内容,处理软连接

Sort :以行为单位以行对文件内容进行排序,也可以根据不同的数据类型进行排序

Sort 选项 参数

-b 忽略每行前面的空格,进行排序,而不是把空格缩进,有空格也不影响排序

-n 按照数字进行排序

-r  反向排序

-u  去重,相同的数据行只显示一行

-o  输出文件,把排序后的结果,输出到指定的内容文件

多个选项可以放在一起使用

面试题:

怎么样不改变源文件的怕羞顺序,输出到另外一个文件中:

cat -n /etc/passwd | sort -n -o /opt/xxx.txt

快捷去重unip:报告或者忽略文件中连续的重复行,常用于sort命令结合使用

uniq 选项,参数

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

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

-d 仅显示重复出现的行(必须是连续的重复行)

tr 对字符进行替换,压缩和删除

格式 tr 选项 参数

结合管道符使用 例如:echo 123:| tr 选项

常用选项:

-c 保留字符集1的字符,其他字符用字符集来进行替换,必须要保留,然后替换

-d删除字符集

-s将重复出现的字符串压缩成一个。

第二个用法,替换字符集

-t替换

Cut :对字段进行截取和剪裁

Cut 选项 参数

Cat 文件名 | cut 选项

-d 指定分隔符 截取字段

-f 对字段进行截取

以冒号为分隔符,截取1-3列

Cut -d ‘:’ -f 1,3 /etc/paaswd

以冒号为分割符,截取1和3列

-b以字节为单位截取

-c以字符为单位截取

-complement排除所指定字段

--output-delimiter 更改原内容的分隔符

Cut和AWK有相似之处,都是对行来取列

Cut的默认分隔符是tab建

AWK的默认分隔符就是空格,把多个连续的空格当做一个处理

Cut主要就是切文本,指定分隔符,指定分隔符最好是指向性越明显越好

AWK更好用一些

对文件拆分:split可以把文件拆分成若干个小文件

-l 指定行数拆分 拆分时记得最后价格名称

-b 指定大小进行拆分

创建一个指定大小文件:dd if=/dev/zero of=/opt/123.txt bs=10M count=5

面试题:

现在有一个日志文件----Nginx----Nginx.log----5G大小

你有什么方法提高这个文件的打开速度

答:split拆分

文件合并:paste   cat

面试题:合并文件,paste和cat的区别

Paste是左右合并

Cat是上下合并

面试题:

如何统计当前主机的连接状态:

有多少个listen

有多少个estab

排序去重展示

练习题:统计当前主机连接数

正则表达式:匹配文件内容。根据特定的字符和表达式

Linux下:grep  seq  awk

配置文件也可以支持正则表达式例如Nginx和mysql

通配符和正则表达式的区别:

通配符匹配的是文件名:

正则表达式就是用来匹配文件内容的:

正则表达式:

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

转义符:\  转义符配上点,那点就是点了,没有其他意思了

():分组的意思  那只猫表示括号的意思呢 \(\)

[]:匹配任意范围内的单个字符

使用正则表达式一定要把匹配内容引起来

取反[^a-z]

[[:blank:]]匹配空格或者制表符

[:space:] 空格tab键 换行符 回车 各种类型的空白

[:cntrl:] 退格删除

小补充:

元字符:

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

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

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

[^]  匹配指定范围外的任意单个字符,示例:[^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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值