awk -F":" '{print $2==20? $0: $1}' chen.data
chen.data文件内容为:
data:10:1000
us:1:32
data:20:3000
llsd:9:56
kk:8:667
data:100:2000
dat:123:9000
结果为(如果第二条记录为20,则打印全行,否则打印第一个记录)
data
us
data:20:3000
llsd
kk
data
dat
awk -F":" '$2~/[0-9][0-9]/{print $0}' chen.data (如果第二个记录前两个是数字,则打印该行。注意这里的~匹配操作符的运用,否则将只是对第一条记录默认匹配)
data:10:1000
data:20:3000
data:100:2000
dat:123:9000
更高级的语法,可以替代前面的条件判断
awk -F":" '{ if($2==20){print $0} else {print $1} } ' chen.data
data
us
data:20:3000
98llsd
kk
data
dat
awk中的for循环awk -F":" '{count=$2/10+1; for(i=0;i<count;i++) { print $0} } ' chen.data (