awk基础01-基本用法

什么是awk

    awk 是一门解释型的编程语言,支持条件判断,数组、循环等功能。可用于文本处理、输出格式化的文本信息、执行数学运算、字符串等操作。

    awk在处理文件时按进行逐行处理,即每次处理输入的一整行,完成后再处理下一行,如此循环直到全部处理完毕,默认以换行符作为一行的终结。而在一行中又默认使用空格做为每一列的分隔符,将一行分割为多列。如下所示:

工作原理

第一步

  awk读取一条记录作为输入,并将这条记录传递给内部变量 $0

第二步

  记录被分隔符分割成多个字段,每一个字段被存储到指定编号的变量中,从 $1 开始。可使用 -F 指定分隔符,awk默认分隔符为空格

第三步

  对于每一条记录,按照给定的pattern进行匹配,匹配成功则执行对应的action,匹配失败,则不执行action。

第四步

  重复第1~3步直到结束

基本语法

常用选项

常用选项如下所示:

Pattern

    awk 中模式可以理解为在处理文本行前需要满足的条件,如果满足则进行处理。常用的模式(Pattern)如下所示:

BEGIN { 语句 }:指定在处理文本之前需要进行的操作

END { 语句 }: 指定在文件文本之后需要进行的操作

表达式 { 语句 }:对于表达式为真时需要进行的操作

/正则表达式/ { 语句 }:对正则表达式能匹配的结果需要进行的操作

如果遇到/,则需要进行转义操作,使用\/

如果正则需要使用,则需要使用—posix—re-interval选项

组合模式 { 语句 }:通过与(&&)、或(||)和非(|)或者{}组合的多个表达式,需要进行的操作

模式1,模式2 { 语句 }:范围模式(range pattern) 匹配从与模式1匹配的行到与模式2相匹配的行(包含该行)之间所有的行需要进行操作

    awk 支持的条件运算符如下所示:

1、常规用法:

2、正则表达式用法:

Action

    awk 中的操作(Action)其主要作用是对符合模式的数据进行的命令操作,如显示打印等。最常用的就是print。

Action的{ }必须与其对应的模式处理同一行

Action常用组合方式如下所示:

方式一:在这种方式中,各个动作间是顺序执行,即执行完成第一个动作后,再执行第二个,等最后一个动作执行完成后,再重复第一个动作,如此循环直到结束。因此输出的结果也是每个动作一行

awk ‘ ’

方式二:执行效果同方式一

awk ‘’

方式三:将所的输出结果全部打印输出到一行上面

awk ‘’

以上三种用法示例如下所示:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180912G2213F00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券