一张图快速帮助你精通Awk命令

从第一个Awk命令开始

学习一种语言的最快方法就是去使用它,所以接下来要做的就是写出第一个Awk命令。

从hello world开始学习

现在开始体验地一个Awk示例:

$ awk 'BEGIN{ print "hello,world"}'
hello,world

怎么理解这段命令呢?

这是一段没有输入,只有输出"hello,world"的命令。

  1. awk 'BEGIN{ print "hello,world"}' 这段代码的awk是命令名称,后面单引号内的部分是awk要执行的程序部分。
  2. 程序部分的BEGIN成为模式,表示在awk程序执行开始时需要执行大括号内的语句块(称为动作),就是 print "hello,world" 输出。

Awk命令的语法格式

awk程序的使用语法如下:

pattern { action }

其中:

  • pattern 就是模式,用来匹配查找到要处理的数据的条件规则,可以是数值判断,字符串比较,正则匹配等。
  • action 就是动作,即要对 pattern 查找到的数据行进行处理的逻辑动作,例如输出找到的行数据、统计行数或者是查找是否有你的名字等等。

回顾hello,world的示例,我们可以知道 BEGINpatternprint "hello,world" 是要执行的动作
例如:

$ awk '$1 > 1 { print $0 }' datafile

这条命令的模式是$1 >1 , 动作是print $0, 而输入数据是个名为datafile的文件。

Awk两个重要的数据格式概念

既然是数据处理,就会涉及到数据格式的概念,Awk命令抽象出两个数据格式的概念: 记录字段

  1. 记录(record): 就是按记录分隔符RS分隔的数据,默认情况下一行称之为记录,因为默认记录分隔符RS为换行符(RS="\n") .
  2. 字段(field) : 就是对一条记录中的数据按照字段分隔符FS拆分的数据,默认情况下每一条记录会按照FS(默认为空白符[ \t]+)对内容进行分隔成 $1、$2、$3… $NF 个记录,其中内置变量NF的值为字段数量的数值。

示例理解

$ cat  datafile
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7

$ awk '$1 > 1 { print $0 }'  datafile
2 3 4 5 6
3 4 5 6 7

数据文件datafile

  • 包含了三条记录,每一行就是一条记录,记录用内置变量 $0表示。
  • 每条记录有五个字段,分别用内置变量 $1,$2,$3,$4,$5表示。
  • 命令的意思是: 如果 datafile中记录的第一个字段数值大于1就输出这条记录

想要更加深入学习Awk命令可以 直接在看云平台上找到对应电子书,直接访问地址 精通Awk命令
这里还有关于如何使用Linux系统的电子书走进Linux的世界
想学习网络爬虫的朋友,也可以阅读这本书《虫师的江湖》
如果你没有看云帐号,可以点击这个邀请链接注册 看云注册链接

最后,奉上一张Awk命令参考图。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

根叔的修行笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值