awk(2) awk 中的指令

xiaoxiao2021-02-28  99

awk的指令: expression ( function calls, assignments..) print expression-list printf( format, expression-list) if( expression ) statement [else statement] while( expression ) statement do statement while( expression) for( expression; expression; expression) statement for( variable in array) statement delete break continue next exit [expression] statement 示例: 1)、if...else... awk脚本 awk 'BEGIN{     num=ARGV[1]     if(num>3){         print "num larget 3"     }else if(num<3){         print "num less 3"     }else{         print "num eq 3"     } }' $* 2)、while 示例:递减输出 awk ' BEGIN{     num=ARGV[1]     while(num>0){         print num         num--     } } ' $*  3)、do...while 示例:递减输出 awk ' BEGIN{     num=ARGV[1]     do {         print num         num--     }while(num>0) } ' $* 注: 和while 区别是,do..while 先执行一遍,再判断条件。 4)、for 数组 awk ' BEGIN{     arr[1]=1;arr["test"]="test";arr[6]=6     for(a in arr){         print a"="arr[a]     } } ' $*  for( expression1; expression2; expression3) statement awk ' BEGIN{     sum=0     for(i=1;i<=100;i++){        sum+=i     }     print sum } ' $* 5)、break for、while、do..while 跳出循环 6)、continue for、while、do..while 中出现continue ,则之后的命令不再执行,直接进入到下一次循环 7)、next  当执行next 指令时,awk 将忽略其后的所有awk指令(包括其后所有的 条件{指令}),直接读取下一行数据继续从第一个 条件{指令}开始执行 如:$1~/^a/{... next} {...} 当以a 开关的行时,跳过执行所有的指令。next 前的指令仍会执行的。 8)、exit 即退出awk 程序 9)、print ,printf printf 格式输出,也可以输出到文件 print 输出字符串,或者变量。如:print "id",id     字符串和变量使用逗号分割,打印出时使用OFS 变量分开,此变量默认是空格 10)、close 关闭开启的文件或者pipe 11)、system 执行shell 上的指令。 如:awk 'BEGIN{file="test.log" system("rm" file)}' 删除test.log 文件 12)、|  可以在shell 和awk 之间传递数据。参考getline  13)、delete   删除数组中的某个值 for( any in X_arr ){     if(any=="test"){    delete X_arr[any]    #一次只删除一个值 } } 14)、+, -, *, /, %, ^指数,与C 语言用法一致。 =,+=,-=,*=,/=,%=,^= ,++,-- x+=5 的意思就是  x=x+5 15)、三元运算 条件?value1:value2 16)、逻辑运算 &&  ||  !  17)、关系运算符

>,>=,<,<=,!=,!

转载请注明原文地址: https://www.6miu.com/read-71238.html

最新回复(0)