标签:blank
awk是报告生成器
awk是原作者:aho,Weinberger,Kernighan三个人首字母的缩写
awk是指向gawk的符号链接
awk是独立的编程语言,
模式:类似地址定界
$0表示整个一行
$1$2$3$4,表示每个由空格分开的单位
-F char 是分隔符
awk [选项] ‘program’ file
awk [选项] ‘pattern{action}’ file
支持变量:
内置变量,自定义变量
内置变量:
FS:输入时字段分隔符
Rs:输入时行分隔符
OFS:输出时字段分隔符
ORS:输出时行分隔符
NF:一个行里的字段数
NR:文件里的行数
FNR:显示每个文件的行号
awk –F: ‘{print $1,$NF}’ /etc/passwdd等同于下边的命令
awk –v FS=: ‘{print $1,$NF}’ /etc/passwd
自定义变量
printf命令:
printf format,item1,item2
format的可选项:
%c:显示字符的ASCII码
%d,%i:显示十进制
%e,%E:科学技术法显示数值
%f:显示字符串
%g,%G:以科学技术法格式或浮点数格式显示数值
%s:显示字符串
%u:显示无符号整数
%%:显示%自身
修饰符:
#:宽度
-左对齐
+显示数值符号
.#取精度值
注意 : print不会显示出%d的含义,只会显示字符
算术运算:+,-,*,/,+=,-=,*=,/=
如果自身是=,要写成/=/
比较操作符:
<
<=
>
>=
==
!=
~左边字符串能匹配右边模式为真
!~对上一个命令取反
三目操作符:
pattern,模式:
1、正则:/pattern/
2、表达式:
3、行范围,地址定界startline endline等,用NR来做判断
4、BEGIN/END特殊模式,表示之前(BEGIN)或之后(END)运行1次
5、空模式,匹配任意行,默认模式
action
1、表达式
2、控制语句 if-else,
if(条件){then body}else{else body}
do-while
死循环啦。
while
for
case
3、组合语句
4、输入语句
5、输出语句print,printf
循环控制:break,continue,next
next,提前进入对下一行的处理!!
数组:
传统数组:索引从1开始
关联数组
for(var in array),array是索引
这个用法很常用,统计同一字段的不同名称的数量
内置函数:
length(string),求string长度
split(目标字符串,分隔后存放位置,分隔符)分隔字符串
substr取子串
标签:blank
原文地址:http://korekara.blog.51cto.com/8206017/1696912