济南微网站建设,广州网站建设公司招聘,竞价网站做推广方案,邢台网络推广系统找哪家一.介绍 awk是专门为文本处理设计的编程语言#xff0c;是一门数据驱动的编程语言。与sed类似#xff0c;都是以数据驱动的行处理软件#xff0c;主要用于数据扫描#xff0c;过滤和汇总。数据可以来自于标准输入#xff0c;管道或者文件。
二.语法 awk是一种处理文本文件…一.介绍 awk是专门为文本处理设计的编程语言是一门数据驱动的编程语言。与sed类似都是以数据驱动的行处理软件主要用于数据扫描过滤和汇总。数据可以来自于标准输入管道或者文件。
二.语法 awk是一种处理文本文件的编程语言文件的每行数据都被称为记录。默认以空格或者制表符为分隔符每条记录被分成了若干字段(列)。awk每次从文件中取出一条记录。 格式
awk [选项] 条件{动作} 条件{动作} ... ... 文件名
三.变量 awk语法由一系列条件和动作组成在花括号内可以有多个动作多个动作之间用分号分隔。在多个条件和动作之间可以有多个空格。 如果没有指定条件则匹配所有数据如果没有指定动作则默认为print打印动作。 3.1 常用内置变量
FILENAME当前输入文档名称。FNR当前输入文档的当前行号尤其是在有多个输入文档时有用。NR输入数据流的当前行号。$0当前行的全部内容。$n当前行第n个字段的内容。(n 1)NF当前记录(行)的字段(列)个数。FS字段分隔符默认为空格或者Tab制表符。OFS输出字段的分隔符默认为空格。ORS输出记录分隔符默认为换行符\n。RS输入记录分隔符默认为换行符\n。同样时输出行号NR是将所有文件的数据视作一个数据流而FNR是将多个文件的数据s视为独立的若干个数据流遇到新文件时行号从1开始递增。 3.2 自定义变量 3.3 调用系统变量 3.4 自定义分隔符 awk默认使用空格换行符制表符作为分隔符可以使用-F自定义分隔符。 3.5 内置变量RSOFSORS
RS内置变量RS保存的是输入数据的行分隔符默认为\n可以指定其他符号作为分隔符。 OFS保存输出列的分隔符(列分隔符)默认为空格。输出后每一列的分隔符。输出以设置的OFS作为分隔符。 ORS保存输出行的分隔符。默认是\n 3.6 print指令 可以输出常量与变量如果是字符串常量需要用双引号括起来数字常量可以直接打印。 3.7 条件匹配 awk支持使用正则进行模糊匹配也支持字符串和数字的精确匹配也支持逻辑与和逻辑或。 使用 3.8 BEGIN和END BEGIN导致动作指令仅在读取任何数据记录前执行一次END导致动作指令仅在读取完所有数据记录后执行一次。 BEGIN可以进行数据初始化END可以进行数据汇总。 3.9 数值计算 awk中的变量不需要定义就可以直接使用未定义的字符为空未定义数值值为0。 3.10 循环计数 遇到符合条件的记录进行动作。 四.条件判断语句 if后面如果只跟一个动作指令则花括号{}可以省略如果if后面的指令为多条则需要使用花括号{}括起来多个指令使用分号分隔。 4.1 单分支语句 语法
if(判断条件){动作指令;... ...} 4.2 双分支语句 语法
if(判断条件){动作指令;... ...}else{动作指令;... ...}
统计系统用户个数和普通用户个数 4.3 多分支语句 语法
if(条件1){动作指令;... ...}else if(条件2){动作指令;... ...}else{动作指令;... ...} 五.数组与循环 5.1 循环 语法
for(变量 in 数值名){动作指令} 遍历数组 变量是索引数组[变量]是值。 成员关系判断 5.2 for循环 语法
for(表达式1表达式2表达式3){动作指令;... ...} 统计/etc/passwd中root出现次数。里面包含两层循环。第一层隐藏循环awk遍历每一记录(行)显示循环遍历每一行的每一列。 5.3 while循环 语法
while(条件){动作指令;... ...} 示例 5.3 循环中断语句 与shell一样awk提供了breakcontinue和exit语句作用相同。 详细 awk命令详解_运维小兵的博客-CSDN博客_awk