[root@xiaolong_cloud shell_study]# cat num2
12 34 56
33 887 200
100 5 5
一 流程
1 if
else
awk ‘{if($1 < 5) print $1*2 ; else print $1}’ num
2 for 循环
[root@xiaolong_cloud shell_study]# awk ‘{sum = 0; for(i=1;i<4;i++){sum+=$i}print sum}’ num2
102
1120
110
注: 输出每一列的和. (awk 每一行每一行的读取)
3 while 循环
[root@xiaolong_cloud shell_study]# awk ‘{sum=0; i= 1; while (i<4){ sum+=$i; i++;}print sum }’ num2
102
1120
110
先判断后执行
4 do…while 循环
[root@xiaolong_cloud shell_study]# awk ‘{sum=0; i= 1; do{ sum+=$i; i++;}while(i<4); print sum }’ num2
102
1120
110
先执行后判断
break 跳出循环,继续执行其他
continue 跳过本次循环
二 awk 小提示
打印 num2 文本行数
[root@xiaolong_cloud shell_study]# awk ‘END{print NR}’ num2
3
打印 文本最后一行
[root@xiaolong_cloud shell_study]# awk ‘END{print $0}’ num2
100 5 5
打印文本列数
[root@xiaolong_cloud shell_study]# awk ‘END{print NF}’ num2
3
打印一列的和
[root@xiaolong_cloud shell_study]# awk ‘{sum=$1 +sum}END{print sum}’ num
55