shell脚本 之 awk详解(数据筛选)

1. awk命令简介

awk是专门为文本处理设计的编.程语言,也是一个应用程序,几乎所有Linux发行版本都自带这个程序。我们通常用它进行数据扫描、过滤、统计汇总工作。

  • awk是一种强大的编辑工具,比较倾向于一行当中分成数个字段来处理,因为awk相当适合小型的文本数据。
  • awk 比较倾向于将一行分成多个字段然后再进行处理,且默认情况下字段的分隔符为空格或 tab 键。awk 执行结果可以通过 print 的功能将字段数据打印显示。

awk工作原理

  • 逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。
  • 在使用awk命令的过程中,可以使用逻辑操作符“&&”表示“”、“||”表示“”、“!”表示“”;还可以进行简单的数学运算,如+、-、*、/、%^分别表示加、减、乘、除、取余乘方

2. awk命令格式

它与grepsed命令一样都是以行为单位读取文本的,默认以空格或Tab键为分隔符,将分割所得的各个字段保存到内建变量中供后续使用

命令格式如下:

awk "[选项1] {操作1;操作2} [选项2] {操作3;操作4} ..." 文件名
awk -f 脚本文件 文件名

awk语法由一系列选项和操作组成,在花括号内可以有多个操作,在多个操作之间是有分号分隔,在多个选项和操作之间可以有若干空格,也可以没有

选项说明:
-F fs or --field-separator fs:相当于内建变量“FS”,指定分割符为fs,默认为空格或Tab制表符;
-f scripfile or --file scriptfile:从文件中读取awk指令,用来代替命令行中输入的命令;
-v var=value or --asign var=value:设置一个变量并且附上初值。

3. awk常见的内置变量和运算符

常见的内置变量如下

内置变量 说明
$0 当前记录(作为单个变量),即当前处理的行的字段个数
FS 列分割符指定每行文本的字段分隔符,默认为空格或制表位。也可用选项"-F"表示
NF 当前处理行的字段个数,即列数,从1开始
NR 当前记录中的行数,从1开始
$n 当前处理行的第n个字段(第n列)
RS 行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是’\n’
FILENAME 被处理的文件名
FNR 当awk处理多个文件时,分别对每个文件的行数进行计数
ORS 更改行换行符
OFS 更改列分割符
ARGV 表示是一个数组,这个数组中保存的是命令行所给定的参数
ARGC 表示参数的数量,也可以理解为ARGV数组的长度

运算符

运算符 描述
= += -= *= /= %= ^= **= 赋值
?: C语言中的三目运算符
< <= > >= != == 关系运算
+ - * / % 算术运算
^ ** 求幂
++ -- 自增和自减
||和&& 逻辑或/与
$ 字段引用
in 数组成员

4. awk常见用法汇总

4.1 基础用法

示例,编写一个test.txt文本

root@ubuntu:/home/zgx/Desktop
  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

逆鳞_Kevin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值