Liunx之bash正则表达式(2)

本次我们一起来学习一下有关正则表达式的一些操作命令。
我们知道grep命令可以提取符合条件的行,那么如何提取符合条件的列呢?这时候我们就要用到cut命令。
cut [选项] 文件名

-f列号提取第几列
-d分隔符按照指定分隔符分割列

接下来让我们看下例子,我实现创建好了一个name.txt 这里要说明一下 cut默认分隔符是制表符(tab键空格)
在这里插入图片描述
下图是提取第一列的内容
在这里插入图片描述

如果想要提取多列,列号和列号之间以逗号分开即可。
我们也可以自己定义分隔符,例如 我想提取/etc/passwd中以冒号为分隔符的第一列内容
结果如下
在这里插入图片描述
cut命令并不难,我们一般会将它和grep命令结合使用。

在这里插入图片描述
在这里插入图片描述以上是支持的几个输出格式

接下来让我们直接看看printf的用法吧
在这里插入图片描述
在这里插入图片描述大家可以试试以上输出,看看会有什么样的效果?

printf是不能打印文件内容的,不信你试试看
在这里插入图片描述
如果我们想要打印,该怎么办?
这时候我们就要用到$()命令
在这里插入图片描述并且这个命令的bug在于,输出的内容的是没有格式的,我们是需要手动去调整格式的。

那为什么还要学习这个命令呢?因为awk命令中会涉及到。
在这里插入图片描述

接下来就让我们看看awk命令。
在这里插入图片描述

我们直接看例子吧
这是事前创建好的文件
在这里插入图片描述
我们首先不加任何条件,只是输出第2,3列,注意要加格式符,否则这就是标准输出。
在这里插入图片描述
我们之所以要用awk命令,是因为cut无法用在下图这样含有空格键为分割符的命令结构中
在这里插入图片描述
如果我们想提取31%,该怎么做呢? 一起来试一试。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
希望大家也可以动手试一试。

接下来让我们试试加一些条件
在这里插入图片描述如果我们想在截取内容开头添加一些内容,那么就要用到BEGIN
有BEGIN,也就有END
只不过一个是用在开头,一个是用在结尾。
在这里插入图片描述
但是这两个最主要是用来FS内置变量(设置字段分隔符号)
例如 /etc/passwd 文件中是以冒号为分隔符的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值