一次读取一行文本,按输入分隔符进行切片,切成多个组成部分,将每片直接保存在内建的变量中,$1,$2,$3….,引用指定的变量,可以显示指定断,或者多个断。如果需要显示全部的,需要使用$0来引用。可以对单个片断进行判断,也可以对所有断进行循环判断。其默认分隔符为空格
-F : 指明输入时用到的字段分隔符 -v var=VALUE : 自定义变量 $ ,而是直接引用 awk [options] ‘scripts’ file1,file2…..
在这种模式中,scripts主要是命令的堆砌,对输入的文本行进行处理,通过命令print,printf或是输出重定向的方式显示出来,这里经常用到的知识点是:awk的内置变量,以及命令print和printf的使用
awk [options] ‘PATTERN{action}’ file,file2…..
在这种模式中,最重要的是5种模式和5种action的使用,以及awk的数组的使用和内置函数
1、print
2、内置变量
FS : input field seperator,输入的分隔符,默认为空白字符 OFS : output field seperator,输出的分隔符,默认为空白字符 RS : input record seperator,输入的换行符 ORS : output record seperator,输出时的换行符 NF : number of field ,字段个数 NR : number of record,文件中的行数 FNR : 对每个文件进行行数单独编号 FILENAME : awk命令所处理的文件的名称 ARGC : 命令行中参数的个数,其awk命令也算一个参数 ARGV : 其是一个数组,保存的是命令行所给定的各参数 3、自定义变量
-v var=VALUE : 在选项位置定义 awk 'BEGIN{test="hello";print test}' : 在program中定义 变量在program中定义时,需要使用引号引起来 4、printf命令
要点:
格式符
%c : 显示字符的ASCII码 %d , %i : 显示十进制整数 %e , %E : 科学计数法数值显示 %f : 显示为浮点数 %g , %G : 以科学数法或浮点形式显示数值 %s : 显示字符串 %u : 无符号整数 %% : 显示%号自身,相当于转义 修饰符
N : 显示宽度 - : 左对齐(默认为右对齐) + : 显示数值符号 输出重定向
特殊文件描述符: /dev/stdin :标准输入 /dev/stdout:标准输出 /dev/stderr:错误输出 /dev/fd/N : 某特定文件描述符,如/dev/stdin就相当于/dev/fd/0 * 示例 * awk -F: '{printf "%-15s %i/n",$1,$3 > "/dev/stderr"}' /etc/passwd 文章出处——运维部落微信公众号