[英]AWK programming, conditional statements
这个awk命令会为每一行执行'stuff 1','stuff 2'仅用于第一行,'stuff 3'用于除第一行之外的行。
awk '{ { Do stuff 1 } if(NR==1) { Do stuff 2 } else { Do stuff 3 } }'
基于以上所述,下面将为每一行做“填充1”,当行不是第一行时为“填充2”,对于每行(包括第一行)执行“填充3”正确?
awk '{ Do stuff 1 } NR!=1 { Do stuff 2 } { Do stuff 3 }'
或者“东西2”和“东西3”只会执行NR!= 1 ??
在5行输入:
ls -1 | awk '{ print "allways"; } NR!=1 { print NR"-"2; } { print NR"-"3 }'
allways
1-3
allways
2-2
2-3
allways
3-2
3-3
allways
4-2
4-3
allways
5-2
5-3
所以,stuff3总是完成(完全像stuff1)。 只有stuff2受条件影响。
注意第一个外括号; 你有一个在所有行上执行的块,包含一个在所有行上执行的块和一个根据NR
决定的条件。
第二个有三个块,第二个块上有一个条件,它只对第2行和第2行执行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.