awk常用控制语句
- if (condition) {statement} [ else {statement}]
awk '{if ($2>100) {print $0} else {print $3}}' text.txt
- while (condition) {statements}
awk '{i=1;while (i<=NF) {if ($i>100){print $i,length($i);}i++}}' text.txt
- for (expr1;expr2;expr3) {statements}
多条件筛选,如选出奇数列中其长度大于5的值
awk '{for (i=1;i<=100;i+=2) {if (length($i)>5) {print $i}}}' text.txt
截取字符串
- substr(s,i[,n])
从s表示的字符串中取字串,从i开始,取n个字符;
awk '{print substr($1,1,13),substr($6,2,3)}' text.txt
- 自定义函数
function f_name(p,q) {}
显示每行前两个域的较大值的函数如下:
awk 'function max(a,b,c) {return (a>b?a:b)} {print max($1,$2)}' text.txt