awk中next用法

195. Tenth Line

How would you print just the 10th line of a file?

For example, assume that file.txt has the following content:

Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Your script should output the tenth line, which is:
Line 10

[show hint]

Hint:
1. If the file contains less than 10 lines, what should you output?
2. There's at least three different solutions. Try to explore all possibilities.

awk依旧很强大,模式块中next可以实现跳过功能,如下,只输出第10行,如果有的话:
awk 'NR!=10{next}{print}' file.txt
awk中next用法
很神奇的是,10后面多个分号结果就刚好相反,如下,输出10行除外的行,如果有的话:
awk 'NR!=10;{next}{print}' file.txt
awk中next用法awk中next用法
哼,其实其实,“;”把语句截断啦,上面相当于,为什么呢,看看下面:
awk中next用法awk中next用法

然后呢,那么这题简化:

awk中next用法awk中next用法awk中next用法

哇,还是很神奇,其实还有:

awk中next用法awk中next用法

应该很多种方法都可以,就不去一一想了,太灵活。