AWK 简介与例子

发布时间:2020-06-21编辑:脚本学堂
本文分为两部分:基本观点和概念;AWK 文本解析的例子。

本文分为两部分:
1) 基本观点和概念;
2) linuxjishu/13830.html target=_blank class=infotextkey>awk 文本解析的例子。

一、基本观点和概念

1 AWK 是一种用于处理文本的编程语言工具。

2 AWK 命令格式:AWK ‘{pattern+action}’ 或者是AWK 'pattern {action}'

3 action 参数总是被大括号包围,它由一系列awk语句组成,每个语句之间用;号分割.awk解释他们,并在pattern给定的样式匹配的记录上执行其操作。

4 注释#

5 awk 不修改输入文件,如果未指定输入文件,awk将接受标准输入,并将结果显示在标准输出上。awk支持输入输出重定向

6 在awk中,缺省情况下总是将文本文件的一行视为一个记录,而将一行中的某一个部分视为一个字段。

7 awk用0表示整行,不同的字段之间用分割符分开,系统某人的分割符是空格。

8 awk提供两种变量:内置变量和自定义变量。

9 任何在BEGIN 之后列出的操作将在awk开始扫描输入之前执行,END之后列出的操作将在扫描完全部的输入之后执行。

10 awk比C语言更为灵活,它不执行参数的有效性检查。

11 awk有两种返回方式:隐士返回和显示返回(return)。

12 awk可以作为一个shell命令使用,awk能与shell批处理程序很好的融合在一起。

二、AWK文本解析的例子

#以|为分割符,获得aaaa文件中的第一字段和第三字段的内容,|需要转意
awk -F | '{print $1,$3}' aaaa

#以|为分割符,获得aaaa文件中的第二字段和第七字段的内容,保存到bbbb文件中(追加的方式)
awk -F | '{print $2,$7>>"bbbb"}' aaaa

#以|为分割符,获得aaaa文件中的第二字段和第七字段的内容,保存到bbbb文件中(覆盖的方式)
awk -F | '{print $2,$7>>"bbbb"}' aaaa

#以|为分割符(包括读的分割符和写的分割符),获得aaaa文件中的第二字段和第七字段的内容,保存到bbbb文件中(追加的方式)
awk 'BEGIN{FS="|";OFS="|"} {print $2,$7>>"bbbb"}' aaaa

#awk获取手机号包含4063的所有列
awk -F | '{if($7 ~/4063/) print $0}' wwwww.log

#统计行数
awk 'END{print NR}' total

#统计手机号包含0251的行数
awk -F | 'BEGIN{i=0;}{if($7 ~/0251/) i++;} END{print i}' total

您可能感兴趣的文章:
awk统计Linux下最常用的20条命令
awk基础知识(1)-使用规则
awk基础知识(2)-处理多个字段
awk基础知识(3)-调用外部脚本
awk基础知识(4)-begin和end块
awk编程基础知识(5)-规则表达式
awk编程基础知识(6)-条件语句
awk基础知识(7)-变量
awk基础知识(8)-运算符
awk基础知识(9)-处理记录
awk基础知识(10)-循环结构
awk基础知识(11)-数组下标字符串化
awk基础知识(12)-格式化输出
awk基础知识(13)-字符串函数
如何在shell脚本里传递一个变量给awk
awk单行脚本快速参考
shell传递参数给awk
有关awk中的内置变量、操作符与函数
awk中的内置字符串函数详解