一、awk命令行语法
awk [-v var=value] [-F re] [--] 'pattern{action}' var=value file(s)
awk [-v var=value] [-F re] -f scriptfile [--] var=value file(s)
二、awk命令语法
pattern{ action }
2.1 模式
/regular expression/
relational expression
BEGIN
END
pattern, pattern
注释
2.2 正则表达式
2.3表达式
1. 常量
转义序列:\r、\n、\t、\v、\b、\ddd、\xbex、\a、\f、\c、
2. 变量
3. 数组
array[index] = value
for (item in array)
if (index in array)
split创建数组
关联数组
4. 系统变量
ARGC、ARGV、NF、NR、RS、FS、ORS、OFS、FNR、FILENAME、OFMT、RLENGTH、RSTART、ENVIRON、CONVFMT、SUBSEP、
5. 操作符
6. 语句和函数
三、awk概念
3.1 字段
每个输入行都被分割为字段。
默认,字段分隔符为一个或多个空格和/或制表符。
改变字段分隔符(3种):
取字段值:$1、$2、
3.2 记录
每个输入行都是由几个字段组成的一个记录。
改变记录分隔符:
取记录值:$0
四、awk命令汇总
测试文件file:
4.1 算术函数(9个)
1. 生成随机数函数
rand()
srand(x)
2. 整数函数
int(x)
3. 三角函数
sqrt(x)
cos(x)
sin(x)
atan2(y,x)
log(x)
exp(x)
4.2 字符串函数(10个)
1. 分割字符串
split(s,a,sep)
2. 格式化函数:
sprintf("fmt", expr)
3. 子串函数:
index(s,t)
substr(s,p,n)
4. 字符串长度:
length(s)
5. 替换函数:
sub(r,s,t)
gsub(r,s,t)
6. 大小写转换:
tolower(s)
toupper(s)
7. match函数:
match(s,r)
4.3 “底部抽屉”函数
getline函数
close()
system()
注意:getline与next的区别。
4.4 控制语句
exit
next
4.5 控制语句:
if、for、while、do while
break、continue
五、printf、sprintf
%-width.precision format-specifier