awk
来源:互联网 发布:淘宝密码格式 编辑:程序博客网 时间:2024/05/16 09:30
awk编程模型
调用方法
与sed类似。
awk 'awk语句' inputfileawk -f 'awk命令文件' inputfile./awk命令文件 inputfile
awk语句由 /pattern/action组成
awk '/^$/{print "this is a blank line."}' inputfile
记录和域
行为记录,行中用空格/tab隔开的部分为域。
awk用$符号定义域,$1表示第一个域。
awk '{print $1 $2 $3 $4}' inputfileawk '{print $0}' inputfile #打印全部域awk 'BEGIN{one=1;two=2}{print $(one+two)} inputfile #打印第1+2=3个域
awk用-F选项修改域分隔符
或者用FS环境变量修改分隔符
awk -F "\t" '{print $3;}' inputfileawk 'BEGIN{FS="\t"}{print $3;}' inputfileawk 'BEGIN{FS="\t+"}{print $3;}' inputfile
awk关系/bool运算符
awk 'BEGIN{FS="\t"} $1~/root/' inputfileawk 'BEGIN{FS=":"} if($3<$4 && $1>0) print $0;' inputfile
表达式
x=1y="sss"z="ddd" "dgb" #z="ddd dgb"
#!/bin/awk -fBEGIN{FS=","}{total=$2+$3+$4+$5avg=total/5print $1,avg}
系统变量
格式化输出
printf,语法与C语言类似。
awk BEGIN{FS=","}{printf("%d %s", $1, $3);} inputfileawk BEGIN{FS=","}{printf("%10.3f %-12s", $1, $3);} inputfile #长度10位小数点3位/12位字符串左对齐不足补上空格
内置字符串函数
流程控制
if(a==b) print $1;while()dowhile()for(;;)
数组
awk中为关联数组
b[10.5]=6for(a in b) print b[a];if("10.5" in b) print b[10.5];
split函数
split("aa/bb/cc", arr, "/"); #将aa/bb/cc以/为分隔符,分割到数组arr中split($1, arr, " ");BEGIN{ for(x=0;x<ARGC;x++) print ARGV[x]}
0 0
- awk
- awk
- AWK
- awk
- AWK
- awk
- awk
- AWK
- awk
- awk
- AWK
- awk
- awk
- awk
- awk
- awk
- awk
- awk
- 关于寻路算法的一些思考(2):Heuristics 函数
- 带有『选择次数排序』和『搜索』功能的树形控件设计与实现
- CountDownLatch 多线程通信
- 设计一个windows窗体应用程序,输入时间和速度,求路程。
- Timer中schedule()的用法
- awk
- 第4周项目1-建立单链表
- 安卓:查询sqlite数据库中的数据,分页加载显示出来
- 女屌丝的程序员生涯(二)
- iOS开发-关于短信验证码倒计时
- 九九乘法表
- iOS开发笔记-url编码保留特殊字符
- 2015 ACM/ICPC Asia Regional Changchun Online hdu5444
- IOS学习 第一天