`

AWK pattern {action} 详解

    博客分类:
  • awk
阅读更多

 

 

准备一个数据文件 awk-sample-salary.txt


 

一、Pattern {Action} 详解

这一节的目标:详解 Pattern和{Action}的组合方式, 这两者各自的详解请看下面

这里以简单的正则表达式作为Pattern为例,(Pattern本身又有多种case、组合,请参考 “ 二、Pattern详解 ”)

1.单个Pattern {Action}

/^A/{print} #筛选出以A开头的行,并打印该行数据

//{print}   #打印每一行, //表示无条件的匹配,即匹配所有的行 , {print} 没有指定哪一行,默认就是整行,即{print $0}

// #省略掉Action,默认就是 {print}

{print}     #省略掉Pattern,默认就是无条件的匹配,即匹配所有的行

 

执行结果


 

2.多个 Pattern {Action} 

通过;来分割,或者省略;

/^A/{print "Department is A"} ; /John/{print "      and Name is Johe"}

/^A/{print "Department is A"}  /John/{print "      and Name is Johe"}

 


 

 

二、Pattern详解

参见 http://www.aslibra.com/doc/awk.htm 的附录A, 补充如下

 

 

摘录GAWK的man帮助:

 

 

AWK patterns may be one of the following:  
              BEGIN  
              END  
              /regular expression/  
              relational expression  
              pattern && pattern  
              pattern || pattern  
              pattern ? pattern : pattern  
              (pattern)  
              ! pattern  
              pattern1, pattern2

 

1. 正则表达式  /regular expression/

/^A/    行匹配,  等价于 $0 ~ /^A/

$1~//  列匹配,  等价于 // {if(match($1,//)) print}

$1!~// 列匹配取反,等价于 // {if(!match($1,//)) print}

 

2. 关系表达式  relational expression

注意:Pattern里的关系不能出现 if else ,只有在 {action} 里才可以有if else 等控制语句

awk 提供 C 语言中常见的关系运算符(Relational Operators) 

>,>=,<,<=,==,!=

NF==5 {print}

NR>=3 && NR<=5  {print} #打印第3行到第5行,

$2!="Jhone" {print}

 

3. Patterns组合

多个Pattern可以通过关系运算符来组合成更复杂的一个Pattern ,  加上() 可以控制优先级.

3.1 &&   ||  ! ()

 

(pattern1 || pattern2)  &&  (!pattern3)

 

3.2 pattern ? pattern : pattern  (三目运算符)

 

3.3 特殊的组合 : pattern1,pattern2

 

pattern1,pattern2 {action}:   从 匹配pattern1的行(假设是row1)到匹配pattern2的行(假设是row2),

从row1到row2之间的所有行  都执行{Action}

NR==3,NR==5 {print}  #打印第3行到第5行

 

三、Action详解

参见 http://www.aslibra.com/doc/awk.htm 的附录B

文档摘录:

 


 

 

 

  • 大小: 9.4 KB
  • 大小: 30.8 KB
  • 大小: 17.6 KB
分享到:
评论

相关推荐

    awk命令详解大全

    ### awk命令详解大全 #### 1. 什么是awk? awk是一种强大的文本处理工具,由Aho、Weinberg和Kernighan三位计算机科学家共同创造。它的名称来源于这三位创造者的姓氏首字母。awk的功能远超一般的文本处理工具,它...

    awk命令详解

    * 使用 AWK 需要指定 pattern 和 action,pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。 * AWK 可以以命令行方式、shell 脚本方式和将所有的 AWK 命令插入一个单独文件...

    linux ,awk ,awk详解

    awk 的基本语法是 `awk [ -F re] [parameter...] ['pattern {action}' ] [-f progfile][in_file...]`。在这里,`-F re` 指定输入字段的分隔符,`pattern` 是匹配模式,`action` 是匹配后执行的代码块,`-f progfile`...

    awk使用手册详解_有例子

    ### awk使用手册详解知识点 #### 一、awk简介与适用场景 - **awk**是一种用于文本处理的强大脚本语言,特别适用于处理具有行(Record)和字段(Field)形式的数据。 - **适用问题**:awk适合处理那些需要从文本文件...

    awk实例详解——Unix下awk的使用

    `awk`可以同时处理多个文件,如`awk 'ACTION' file1 file2 ...`。当处理多个文件时,`FNR`会跟踪每个文件的行数。 **9. 自定义函数** `awk`允许用户定义自己的函数,提高代码复用性和可读性。例如: ```awk ...

    awk教程-awk教程.rar

    **awk命令详解** awk是一种强大的文本分析工具,广泛应用于Linux和Unix系统中,用于处理结构化数据,如CSV、TSV格式的文件。它通过模式匹配和动作来处理输入流中的每一行,允许用户定制复杂的文本处理逻辑。下面将...

    linu awk命令详解_linuawk命令详解_

    awk的基本使用格式是:`awk 'pattern {action}' file`。pattern可以省略,此时默认对每一行都执行action。 2. **模式匹配** - `BEGIN`和`END`模式:`BEGIN`模式在处理任何输入行之前执行,`END`模式在处理完所有...

    linux grep sed awk命令详解

    - **基本语法**:`awk 'pattern { action }' 文件` - **常用字段和变量**: - `$1, $2, ...`:代表每一列的值。 - `NR`:当前处理的记录(行)数。 - `NF`:当前行中的字段数。 - **常用操作**: - `print`:...

    awk使用详解(英文)

    awk 'pattern {action}' ``` - `pattern`:匹配模式,可以是正则表达式或其他条件。 - `{action}`:当模式匹配时执行的命令。 例如,以下命令会打印出所有包含"error"的行: ```bash awk '/error/ {print $0}' ``...

    awk命令详解 快速进阶 简洁入门

    ### awk命令详解:快速进阶与简洁入门 #### 第一章:awk的调用方式 在Shell编程中,`awk`是一种极其强大的工具,主要用于文本数据的处理与分析。它能够方便地处理列数据,因此在数据分析、日志处理等方面应用广泛...

    Linux中 sed 和 awk的用法详解

    awk 'pattern { action }' 文件名 ``` - **pattern**:匹配条件,可以是正则表达式或其他条件语句。 - **action**:匹配时执行的操作。 ##### 3. 字段分割 `awk` 默认以空格作为字段分隔符,但可以通过 `-F` 或 `...

    linux awk命令详解.docx

    awk '/pattern/{action}' file ``` 这里,如果行匹配模式`pattern`,则执行`action`。 `awk`还支持在脚本文件中编写更复杂的程序逻辑,通过`-f script.awk`来调用。 总之,`awk`是Linux系统中处理文本的强大工具,...

    awk+手册中文版.pdf

    awk 的架构包括三个部分: Pattern、Action 和 Output。Pattern 用于匹配记录,Action 用于处理记录,Output 用于输出处理结果。 awk 手册中文版提供了 awk 的基础知识和实践指南,旨在帮助读者快速掌握 awk 的使用...

    awk完美参考手册

    awk 'pattern {action}' filename ``` #### 三、Awk各部分详解 **3.1 记录和字段** - **记录**:在Awk中,每行文本被视为一个记录。 - **字段**:每个记录可以被进一步划分为字段。默认情况下,空格或制表符...

    Linux主要shell命令、sed、awk使用详解

    1. **基本语法**: `awk 'pattern {action}' filename` - **示例**: `awk '{print $1}' input.txt` - 打印文件 `input.txt` 的每一行的第一个字段。 2. **字段分割**: 默认以空格作为字段分隔符。 - **示例**: `...

    awk使用手册awk使用手册

    ### awk 使用手册详解 #### 一、awk简介与基本概念 awk 是一款强大的文本处理工具,在 Unix 和类 Unix 操作系统中广泛使用。它最初由 Alfred Aho、Peter Weinberger 和 Brian Kernighan 开发,因此得名 awk(取自...

    awk学习awk学习awk学习awk学习

    awk '/pattern/ { action }' file ``` 这里`pattern`是需要匹配的模式,而`action`是在模式匹配成功时执行的动作。 6. **字段分隔符**: awk默认以空格或制表符作为字段分隔符,但可以通过指定FS(Field ...

    awk用法__都是例子

    awk 的基本语法为 `awk 'pattern {action}' file`,其中 `pattern` 是模式,`action` 是对匹配的操作,`file` 是要处理的文件。 变量: * `ARGC`:命令行变元个数 * `ARGV`:命令行变元数组 * `FILENAME`:当前...

    linux awk时间计算脚本及awk命令详解

    awk '{pattern + action}' {filenames} ``` - `pattern` 是一个正则表达式或条件,当某行匹配该模式时,`action` 将被执行。 - `action` 是一系列命令,可以包含变量赋值、条件判断、循环等。 - `{}` 用于分组命令...

Global site tag (gtag.js) - Google Analytics