Shell编程之AWK的使用

AWK是Linux环境中强大的数据处理工具,具备样式扫描、流控制、内置变量和函数等功能。本文详细介绍了AWK的语法格式、内置变量、命令使用、循环控制语句以及在文件操作和数组处理中的应用,帮助读者全面掌握AWK的使用。
摘要由CSDN通过智能技术生成

背景

AWK是一个优良的文本工具,是Linux环境下现有的功能最强大的数据处理引擎之一。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。他的创建者创建者已将它正式定义为“样式扫描和处理语言”。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。

语法格式

不管语法怎么复杂,其语法始终为:

awk 'pattern {action}'

格式详解-pattern

pattern是执行条件,通常是正则表达式

条件类型 条件 条件说明
AWK保留字 BEGIN 在AWK程序开始时执行,仅会在程序开始的时候被执行一次
AWK保留字 END 在AWK程序结束之前执行,仅会在程序结束的时候执行一次
关系运算符 > 大于
关系运算符 < 小于
关系运算符 == 判断是否等于
关系运算符 >= 大于等于
关系运算符 <= 小于等于
关系运算符 != 不等于
关系运算符 pattern1~pattern2 判断pattern1是否包含能匹配上pattern2的字符串
关系运算符 pattern1!~pattern2 判断pattern1是否不包含能匹配上pattern2的字符串
正则判断 /pattern/ //之间为正则表达式,也支持字符串

格式详解-action

awk的动作通常为:格式化输出

内置变量

$n:表示第几个变量,如:$1,$2,就表示第一个变量,第二个变量
$0:表示执行过程中当前行的全部内容,即,所有的变量值
$NF:表示最后一个变量
NR:表示记录数,即当前执行的行号
FNR:同NR,这个是相对于文件而言的
NF:表示字段个数
FS:字段分隔符,默认是任何的空格
RS:记录分隔符,默认是一个换行符
OFS:输出字段分隔符,默认是一个空格
ORS:输出记录分隔符,默认是换行符
ARGC:命令行参数的数量
ARGV:命令行参数的数组
ARGIND:命令行当前文件的位置(从0开始)
CONVFMT:数字转换格式(默认为:%.6g)
OFMT:数字的输出格式(默认是:%.6g)
ENVIRON:环境变量关联数组
ERRNO:最后一个系统错误描述
FIELDWIDTHS:字段宽度列表(空格分隔)
FILENAME:当前输入的文件的名字
IGNORECASE:如果为真,就忽略大小写
RSTART:match函数匹配的字符串的第一个位置
RLENGTH:match函数匹配的字符串的长度
SUBSEP:数组下标分隔符(默认是34)

命令的使用

现在,先准备一个测试文件test.txt,文件内容如下:

//假设该文件保存的数据格式为
//名字 语文成绩 数学成绩 英语成绩 物理成绩 化学成绩
xiaoming 98 99 44 22 56
xiaohong 56 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值