awk -- 文本处理工具

什么是awk
    awk也是文本处理工具,与sed相比,awk不仅能以行为单位处理文件,还可以以列为单位处理文件。awk的缺省行分隔符是"\n",缺省列分隔符是空格或tab,但是行分隔符和列分隔符都是可以自定义。

awk命令格式
awk option '编辑命令' file1 file2 ...
awk option -f 编辑脚本 file1 file2 ...
awk处理的文件既可以由标准输入重定向得到,也可以当命令行参数传入。 编辑命令既可以直接当命令行参数传入,也可以用-f参数指定一个脚本文件。

option:
-F:指定列分隔符,默认的列分隔符是空格或tab,可以用-F选项自定义列分隔符。我们将以列分隔符分开的列称为域。

编辑命令:
/pattern/{actions}或者condition/{actions}:
pattern:是一个正则表达式,actions是一系列的操作。awk程序以行为单位处理文件,如果某一行匹配pattern的话,就执行actions。
condition: 满足condition条件,则执行actions。如果一条awk命令只有actions部分,则actions会处理文件中的所有行。
action: 常见的action就是print或者printf。其中printf是类C风格的。而print输出的每个变量之间以逗号隔开,如果是字符串的话要以双引号括起来。






BEGIN和END
awk处理文件可以分为三个阶段:处理之前、处理之中、处理之后。BEGIN是处理之前执行的动作,END是处理之后执行的动作。

awk也是一门弱类型语言
     所以就可以使用变量,它的变量使用方法像C语言一样,但是不需要定义。
统计文件中的行数


统计某个目录下所有文件的size总和

awk常见内置变量
FILENAME:awk浏览的文件名。
FNR:浏览文件的记录数,也就是行数。awk是以行为单位处理的,所以每行内容也称所一个记录。
NF:浏览记录的域的个数。可以用它来输出最后一个域。
FS:设置输入域分隔符,等价于命令行-F选项。
OFS:输出域分隔符
例:

awk脚本




统计每个学科的成绩总和

结果:

Q3:每个学生的最高成绩

结果:

用awk求1到100的和

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值