Shell编程之awk

        awk是Linux以及UNIX环境中现有的功能最强大的数据处理工具。

        简单地讲,awk是一个强大的文本分析工具,把文件逐行读入,以空格为默认分割符将每行切片,切开的部分再进行处理。对数据进行排序,对其中的数值执行计算以及生成报表等。

        除此之外,awk 还是一种编程语言环境,它提供了正则表达式的匹配,流程控制,运算符,表达式,变量以及函数等一系列的程序设计语言所具备的特性。  

基本用法

  •  awk [ 参数 ] pattern {action} 文件名

        pattern:表示awk在数据中查找的内容,就是匹配模式

        action:在找到匹配内容时所执行的一些列命令

常用参数

常见参数
-F指定列的分隔符,默认一行数据的列分隔符是空格
-v自定义变量
-f {file}指定读取程序的文件名

内置变量

常用内置变量
FILE_NAME文件名
NR指定显示行的行号
NF表示字段数量
FNR多文件时候,分别计数
OFS输出格式的列分隔符,缺省是空格
RS输入记录分隔符,指定输入时的换行符,原换行符($)仍有效
FS输入文件的列分隔符,缺省是连续的空格和Tab
ORS输出记录分隔符,输出时用指定符号代替换行符

 

执行步骤

  1. 自动从指定的数据文件中读取行文本。
  2. 自动更新awk的内置系统变量的值,例如列数变量NF、行数变量NR、行变量$0以及各个列变量$1、$2等。
  3. 依次执行程序中所有的匹配模式及其操作。
  4. 当执行完程序中所有的匹配模式及其操作之后,如果数据文件中仍然还有未读取的数据行则返回
  5.  回到第(1)步,重复执行(1)~(4)的操作。

演示案例

演示文件内容:

测试1 1 11

测试2 2 22

测试3 3 33

测试4 4 44

 打印文本

awk '{print $1}' awk.txt

awk '{print $1,$2,$3}' awk.txt

 执行awk脚本

        在awk程序语句比较多的情况下,用户可以将所有的语句写在一个脚本文件中,然后通过awk命令来解释并执行其中的语句,语法如下:

awk -f command.txt awk.txt

 command.txt 内容如下 :{print $1,$2,$3}

自定义变量

 

awk 'BEGIN{name="test";print name}' 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值