shell脚本学习笔记14-awk

一、awk介绍

  awk是一种可以处理数据、产生格式化报表的语言,功能十分强大。awk 认为文件中的每一行是一条记录 记录与记录的分隔符为换行符,每一列是一个字段 字段与字段的分隔符默认是一个或多个空格或tab制表符。

  awk的工作方式是读取数据,将每一行数据视为一条记录(record)每条记录以字段分隔符分成若干字段,然后输出各个字段的值。

 

二、awk语法

awk options '[BEGIN]{program}[END]' [FILENAME]

 

 

 

三、awk基本应用

 

 

 3.1)awk对字段的提取

$0 表示整行文本

$1 表示文本行中的第一个数据字段

$2 表示文本行中的第二个数据字段

$N 表示文本行中的第N个数据字段

$NF 表示文本行中的最后一个数据字段

 

 

 

3.2)命令选项

-F:指定字段与字段的分隔符

 

 

 

-f file:如果awk命令是日常重复工作,而又没有太多变化,可以将程序写入文件,每次使用-f调用程序文件就好

 

 

 

-v:定义变量

 

 

3.3)awk对行的提取

提取的方法:1.通过行号;2.通过正则匹配

NR:指定行号

 

 

 

 3.4)awk对字符串提取

 

 

四、awk程序的优先级

  关于awk程序的执行优先级,BEGIN是优先级最高的代码块,是在执行PROGRAM之前执行的,不需要提供数据源,因为不涉及到任何数据的处理,也不依赖与PROGRAM代码块;PROGRAM是对数据流干什么,是必选代码块,也是默认代码块。所以在执行时必须提供数据源;END是处理完数据流后的操作,如果需要执行END代码块,就必须需要PROGRAM的支持,单个无法执行。

 

 

五、awk高级应用

  awk除了可以定义变量外,还可以定义数组,进行运算,流程控制等等。

5.1)awk定义变量和数组

定义变量

 

 定义数组,数组名[索引]=值

 

 

5.2)awk运算

比较运算,为真用1表示,为假用0表示

 

 

数学运算

 

 

逻辑运算

 

 

匹配运算

 

 

5.3)awk环境变量

 

 

 

 

5.4)流程控制

if判断语句

 

 

for循环语句

 

 

while循环语句

 

 

do...while循环语句

 

 

循环控制语句break

 

 

posted @ 2021-06-27 14:35  さくらむすび  阅读(90)  评论(0)    收藏  举报