首页 > 学院 > 操作系统 > 正文

awk精华-新编

2024-06-28 16:01:51
字体:
来源:转载
供稿:网友

1 awk简介

1.1什么是awk nawk gawk

awk是一种用于处理数据和生成报告的UNIX编程语言。nawk是awk的新版本,gawk是基于linux的GNU版本。

1.2 awk介绍

awk是3个姓氏的首字母,代表创建该语言的3位作者:Alfred V.Aho、Brian W.Kernighan、Peter J.Weinberger。当然也可以叫它wak或kaw,但常用的是awk。

最初编写于1977年,1985年得以改进以支持更大的程序,还增加了可用户自定义函数、动态正则表达式、同时处理多个输入文件等功能。

1.3 awk版本

awk的版本有很多,包括old awk、new awk、GNU awk(gawk)、POSIX awk等

2 awk格式

基本语法:awk [options] ‘PRogram’ filename …

awk [options] ‘pattern {action}’ filename

        选项        模式        操作

options 

        -F (field separator)

有三种方法:

1、使用空白符分隔字段(默认值);这种情况下,记录的前导空白字符和结尾空白字符(空格和/或制表符)将被忽略。都视为一个空白字符。

2、使用其他单个字符来分隔字段。例如:awk -F “:”或awk ‘BEGIN{FS=“:”}’

3、使用不止一个字符作为字段分隔符,它将被作为一个正则表达式来解释。例如: FS=“[‘ :/t]"

 -v vars=value (自定义变量)

3 awk原理

工作遍历模式:迭代,循环

1、切片(注意:默认将空格符和制表符都视为空格,而且多个连续的空格都视为一个(自动删除重复的空格)

2、赋予变量 (将fs分隔后的字段都存入变量,整行存入$0)

3、遍历(循环每一个字段,以字段为单位,非每行)

4、逐行(读取一行,将pattern和action都执行完成,读取下一行)

4 awk输出

4.1一般输出print

4.2格式化输出printf

4.3输出到文件

4.4输出到管道

4.5关闭文件和管道

5 awk输入

5.1 awk程序的输入

5.2输入分隔

5.3多行记录

5.4 getline函数

5.5命令行参数

6 awk变量

6.1内置变量

6.2自定义变量

7 awk模式

7.1 empty模式

7.2 BEGIN and END模式

7.3正则表达式

7.4表达式

7.5复合模式

7.6范围模式

8 awk操作

8.1空语句

8.2表达式

8.3输入

8.4输出

8.5流控制语句

9 awk控制

9.1条件语句

9.2循环

9.3程序控制

10 awk数组

10.1关联数组

10.2二维和多维数组

10.3数组应用

11 awk 函数

11.1内置函数

11.2自定义函数

12 其他

13 附录

13.1正则表达式

13.2表达式运算符


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表