此 awk 命令将对每一行执行“stuff 1”,仅对第一行执行“stuff 2”,对第一行以外的行执行“stuff 3”。
awk '{ { Do stuff 1 } if(NR==1) { Do stuff 2 } else { Do stuff 3 } }'
基于以上内容,下面将为每一行执行“stuff 1”,当该行不是第一行时执行“stuff 2”,对每一行(包括第一行)执行“stuff 3”正确??
awk '{ Do stuff 1 } NR!=1 { Do stuff 2 } { Do stuff 3 }'
或者 'stuff 2' 和 'stuff 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 受条件影响。
关于linux - AWK编程,条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10346664/