这个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 }'
或者只会对NR!= 1 ??
的行执行“填充2”和“填充3”答案 0 :(得分: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受条件影响。
答案 1 :(得分:1)
注意第一个的外括号;你有一个在所有行上执行的块,包含一个在所有行上执行的块和一个根据NR
决定的条件。
第二个有三个块,第二个有一个条件,它只对第2行和第2行执行。