Linux笔记(49)——正则表达式与字符命令

来源:互联网 发布:算账软件 编辑:程序博客网 时间:2024/05/22 10:29

正则表达式

正则表达式用于字符串的模式分割,匹配,查找以及替换操作

比如有一篇很长很长的文章,我们如何找到自己想要的信息?可以使用正则的匹配功能

正则表达式与通配符

通配符有:
1. * :匹配任意字符
2. ?:匹配任意一个字符
3. []:匹配中括号内任意一个字符

这里写图片描述

一般操作字符串的命令支持正则,操作文件的命令只支持通配符

基础正则表达式

这里写图片描述

字符截取命令

cut命令

这里写图片描述
默认是以tab键为分隔符

df命令的结果是用空格作为分割符,cut是无法截取的

printf命令

这个命令其实跟字符截取没什么关系,但是经常会用到这个命令,这个格式化输出命令

这里写图片描述

这里写图片描述
printf文件中的内容

这里写图片描述

awk命令

这里写图片描述

awk命令中的输出不能用echo,要用printf,也可以用print。print会自动输出换行符

awk默认用空格和tab作为分隔符

例如:
这里写图片描述
$0是文件名

awk执行流程:
awk是一行一行读,然后一列一列读,并且读每一列时,判断条件是否成立,成立的话执行动作

cut无法读取df命令的结果,但是awk可以截取

如:
这里写图片描述

Use这一列,有百分号,如果我们只想要前面的数值,可以结合cut命令,如:

这里写图片描述

BEGIN和END

BEGIN:作为awk命令的条件,表示在所有动作之前
END:作为awk命令的条件,表示在最后

如:
这里写图片描述

FS内置变量

awk默认用空格和tab作为分隔符,我们可以利用BEGIN来指定FS变量值,也就是指定分隔符

这里写图片描述

关系运算符

这里写图片描述

sed命令

用来替换字符
这里写图片描述

这里写图片描述

例子1

这里写图片描述

例子2

这里写图片描述

例子3

这里写图片描述

例子4

这里写图片描述

例子5

这里写图片描述

注意:
1. 如果没有/g,那么只替换第一个符合的旧字符串,加了/g,所有符合的旧字符串都会被替换
2. s前面可以加行号,表示只操作那一行

sort命令

排序命令

这里写图片描述

例子1

按字母顺序排序
这里写图片描述

-r 取反
这里写图片描述

例子2

以冒号为分隔符,从第3个字段开始,第3个字段结束来排序
这里写图片描述

但是结果却是把第三个字段当作字符串来排序

加-n以数值来排序

这里写图片描述

wc命令

统计命令
这里写图片描述

0 0