AWK使用详解

一、awk介绍:
AWK是一种优良的文本处理工具。它不仅是Linux中也是任何环境中现有的功能最强大的数据处理引擎之一。最简单的说,AWK是一种用于处理文本的编程语言工具。这种编程及数据操作语言(其名称得自于它的创始人Alfred Aho 、Peter Weinberger 和Brian Kernighan 姓氏的首个字母)的最大功能取决于一个人所拥有的知识。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

相关阅读:

awk模式
1.BEGIN模式:让用户指定在第一条输入记录被处理之前所发生的动作,通常可在这里设置全局变量
2.END模式:让用户在最后一条输入记录被读取之后发生的动作
3.正则表达式:使用通配符的扩展集
4.关系表达式:可以用关系运算符进行操作,可以是字符


awk的输出print和printf
print的使用格式:print  item1,item2,…
使用格式介绍:
1.各项目之间使用逗号隔开,而输出时则以空白字符分隔
2.输出的item可以为字符串或数值、当前当前记录的字段(如$1)、变量或awk的表达式;数值会先转换为字符串,而后再输出;
3.print命令后面的item可以省略,此时其功能相当于print $0, 因此,如果想输出空白行,则需要使用print "";

[root@localhost ~]# awk 'BEGIN { print "line one\nline two\nline three"}'
line one
line two
line three
[root@localhost ~]# awk -F: '{print $1,$3}' /etc/passwd
root 0
bin 1
daemon 2
adm 3
lp 4


printf的格式使用:prinf  format,item1,item2,…


格式说明:
1、其与print命令的最大不同是,printf需要指定format;
2、format用于指定后面的每个item的输出格式;
3、printf语句不会自动打印换行符;\n
format格式的指示符都以%开头,后跟一个字符;如下:
%c: 显示字符的ASCII码;
%d, %i:十进制整数;
%e, %E:科学计数法显示数值;
%f: 显示浮点数;
%g, %G: 以科学计数法的格式或浮点数的格式显示数值;
%s: 显示字符串;
%u: 无符号整数;
%%: 显示%自身;


修饰符:
N: 显示宽度;
-: 左对齐;
+:显示数值符号;
1234 [root@localhost ~]# awk -F: '{printf "%-15s %i\n",$1,$3}' /etc/passwd
root            0
bin            1
daemon        2aw

相关推荐