awk学习(一)awk基础

awk学习系列

AWK学习(一) 基础
AWK学习(二) 分隔符

awk简介

awk 早期是在Unix上实现的,所以我们现在再linux的所使用的awk其实就是gawk,也就是GUN awk.awk,也是最常用的版本
在这里插入图片描述
awk 其实是一门编程语言,它支持条件判断、数组、循环等功能,所以,我们也可以吧awk 理解成一个脚本语言解释器

grep、sed、awk被称为linux中的三剑客
我们总结一下这三个剑客的特长
grep 更适合单纯的查找或匹配文本
sed 更适合编辑匹配的文本
awk 格式化文本,对文本进行复杂格式化处理


awk 语法格式:

awk [options ] ‘program’ file1,file2 ,…
对于上述语法中的program来说,又可以细分为 pattern 和action 也就是说 awk 的基本语法如下:
awk [options] 'Pattern{Action} ’ file
从字面上理解,action 指的动作,awk 擅长文本格式化,并且将格式化以后的文本输出,所以awk最常用的动作就是print 和printf, 因为awk要把格式化完成后的文本输出所以这两个动作最常用

我们先从最简单的用法开始,我们先不使用[option],也不指定Pattern,直接使用最简单的action,示例如下:
[root@master-129 ~]# echo ddddd > test1
[root@master-129 ~]# awk ‘{print}’ test1
ddddd
[root@master-129 ~]#
我们只是执行了一个打印的动作,将test1文本的内容打印出来
现在我们来操作以下另一个类似的场景
在这里插入图片描述
在这里插入图片描述
上图总的实例没有使用到option 和pattern,,上图中的awk ‘{print $5}’,表示输出df的信息的第5列,$5表示将当前行按照分隔符分割后的第五列,不指定分隔符,默认使用空格为分隔符

我们也可以一次输出多列,使用逗号隔开要输出的多个列。如下:
在这里插入图片描述
或者指定的列
在这里插入图片描述
第一行没有第5列所以没有输出,而第二行有第五列所以有输出

除了输出文本中的列,我们还能添加自己指定的字段进行拼接
在这里插入图片描述

字符拼接

在这里插入图片描述

注意: $1 这种内置变量外不能加双引号 ,否则不能当文本输入
实例如下:
在这里插入图片描述

我们说过awk的语法如下:
awk [option] ‘Pattern {action}’ file
刚才已经说过最常用的Action:print
现在我们来认识一下pattern(模式) ,
我们先介绍特殊的模式
awk 包含两种特殊的模式: begin 和end
BINGEN 模式指定处理文本之前需要的操作:
END 模式指定处理完所有行之后所需要的操作
先从begin开始,示例如下:
在这里插入图片描述
再开始处理test文件之前,先执行打印操作,输出的内容为“aaa,bbb”

在这里插入图片描述
如果我们想要awk先执行begin模式指定的动作,再根据执行我们定义的动作操作文本
在这里插入图片描述

end模式就是在处理完所有指定的文档后,指定的动作

在这里插入图片描述
那么我们可以结合begin和end模式一起使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值