AWK工具是一种报表生成器,就是对文件进行格式化处理的工具,这里的格式化不是文件系统的格式化,而是对文件内容进行各种“排版”,进而格式化显示。
在Linux上我们使用的事GNU awk也就是gawk,awk文件其实就是gawk的软链接,所以awk和gwak是一样的。我们可以通过命令 man gawk
获得gawk的相关功能说明—gawk - pattern scanning and processing language (模式扫描及处理语言),gawk是一种过程式编程语言。gawk还支持条件判断、数组、循环等各种编程语言中所有可以使用的功能,因此我们还可以吧gawk成为一种脚本语言解释器。
awk的运行方式有3种:
(1)awk命令行
# awk
(2)awk程序文件
# awk -f /path/from/awk_script
(3)awk脚本
# !/bin/awk -f
awk的基本用法:
awk [OPTIONS] 'program' FILE1 FILE2...
其中program:PATTERN{ACTION STATEMENT}
program:编程语言
PATTERN:模式
ACTION STATEMENT:动作语句,可以是由多个语句组成,各语句间使用分号分隔
OPTIONS:
-F[]:指明输入字段分隔符
-v VAR_NAME=VALUE:变量赋值
-f /PATH/FROM/AWK_SCRIPT
awk在处理文本时也是一次读取一行文本,然后输入分隔符(默认为空格字符)进行切片,切成n个片段,然后将每一个片段都赋予awk内部的一个变量当中来进行保存,这些变量为 1、 2、$3等等一直到最后一个,awk就可以对这些片段进行单独处理,比如显示某一段、特定段,甚至可以对某些偏多进行额外的加工处理,比如运算和基数等。
1. awk的输入命令:print
用法:print item1,item2,…
item:字符串,用引号引用
print "hello",awk"
变量:显示变量值,可以直接使用变了名进行引用;
print name
数值:无须加引号
要点:
(1)各 item 之间需要使用逗号分隔;而输出时的分隔符为默认的空白字符;
(2)输出的各 item 可以为字符串或数值、当前记录的字段($#)、变量或awk的表达式;数值会被转换为字符串进行输出;
(3)print 后面的 item 省略时,相当于运行“print $0”,用于