繁体   English   中英

AWK编程,条件语句

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM