0
点赞
收藏
分享

微信扫一扫

awk 文本处理工具三剑客

斗米 2024-01-31 阅读 12

一、什么是awk

1.1 awk 基本概念

awk(语言): 读取一行处理一行

 是一个功能强大的编辑工具,逐行读取输入文本,默认以空格或tab键作为分隔符作为分隔,并按模式或者条件执行编辑命令。而awk比较倾向于将一行分成<font color='red'>多个字段</font>然后进行处理。AWK信息的读入也是逐行。

1.2 awk的格式

1.3 工作原理

前面提到 sed 命令常用于一整行的处理,而 awk 比较倾向于将一行分成多个“字段”然后再进行处理,且默认情况下字段的分隔符为空格或 tab 键。awk 执行结果可以通过 print 的功能将字段数据打印显示。

第一步:执行BEGIN{action;… }语句块中的语句
第二步:从文件或标准输入(stdin)读取一行,然后执行pattern{ action;… }语句块,它逐行扫描文件,
从第一行到最后一行重复这个过程,直到文件全部被读取完毕。
第三步:当读至输入流末尾时,执行END{action;…}语句块

1.4 awk 常见的内置变量

FS∶ 列分割符。指定每行文本的字段分隔符,默认为空格或制表位。与"-F"作用相同

NF∶ 当前处理的行的字段个数。

NR∶ 当前处理的行的行号(序数)。

$0∶当前处理的行的整行内容。

$n∶ 当前处理行的第n个字段(第n列)。

FILENAME∶ 被处理的文件名。

RS∶ 行分隔符。awk从文件上读取资料时,将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录,以进行处理。预设值是’\n’

$NF:最后一段

$(NF-1):倒数第二段

二、awk相关实例

begin 换成 end  同理

2.1 打印磁盘已经使用情况,去除 %

2.2 取出文本中的ip地址及时间

三、 NF:当前处理行的整行内容    NR:当前处理行的行号

3.1 当前处理的行的字段个数

3.2 当前处理的行的行号

3.3 NR==n代表行号等于什么

3.4 NR%2==0取偶数行

3.5 NR%2==1取奇数行

3.6 NR==1,NR==4取区间行

3.7 取UID数值范围$n>1000

举报

相关推荐

0 条评论