awk工具

栏目: 服务器 · 发布时间: 8年前

内容简介:awk工具

一、什么是awk
awk也是文本处理工具,与sed相比,awk不仅能以行为单位处理文件,还可以以列为单位处理文件。awk的缺省行分隔符是”\n”,缺省列分隔符是空格或tab,但是行分隔符和列分隔符都是可以自定义。awk还是一门很复杂的脚本语言,具有像 C语言 一样的分支和循环结构。

二、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输出的每个变量之间以逗号隔开,如果是字符串的话要以双引号括起来。

自动变量: 1

2表示第二列内容,类似于 shell 脚本的位置参数,$0表示整行内容。
例1:打印每一列的内容
awk工具

例2:自定义列分隔符,并输出每一列
awk工具
解释:可以看到上面的文件中列分隔符是”:”,而awk默认的列分隔符是空格或tab,当我们不指定分隔符时,他会将以空格作为分隔,所以会将这一行内容输出(因为这一行没有空格,所以整行内容就是一个域)。当我们指定分隔符之后,可以看到,能够按照我们的想法输出。

例3:除了自动变量外,还有一个NF变量,默认输出最后一列。
awk工具

三、BEGIN和END
awk处理文件可以分为三个阶段:处理之前、处理之中、处理之后。BEGIN是处理之前执行的动作,END是处理之后执行的动作。
使用格式:BEGIN{action},END{action}
例1:在输出文件之前输出start,处理完文件之后在输出end.
awk工具

awk也是一门弱类型语言,所以就可以使用变量,它的变量使用方法像C语言一样,但是不需要定义。
例2:统计文件中的行数
awk工具
解释:用一个变量统计行数,在处理完文件之后再输出。因为awk也是一门弱类型语言,所以它的变量可以随处定义,并且不需要类型。

例3:统计某个目录下所有文件的size总和
awk工具

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

五、awk脚本
awk不仅是一个工具,还是一门脚本语言,它支持和C风格一样的分支和循环结构。

问题:现在有一个学生成绩表如图,总共有三列,姓名、科目、成绩。
awk工具

Q1:统计小于60分,60到74分,75到100分这三个阶段的人数。
awk工具
结果:
awk工具

Q2:统计每个学科的成绩总和
awk工具
结果:
awk工具

Q3:每个学生的最高成绩
awk工具
结果:
awk工具

例2:用awk求1到100的和
awk中的循环语句同样也借鉴与C语言,支持while,do/while,for,break,continue。这些关键字的含义与C语言中一样。
awk工具

六、awk正则运算符”~”:
例:求张三的总成绩
awk工具


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

企业应用架构模式

企业应用架构模式

Martin Fowler、王怀民、周斌 / 王怀民、周斌 / 机械工业出版社 / 2004-7 / 49.00元

本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。本书分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并一起来看看 《企业应用架构模式》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具