2017-04-14 19:35:31 +0000   |     shell leetcode   |   Viewed times   |    

题目

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

几种错误的解法

headtail

先选取前十行,再选取最后一行。当文件不满十行的时候发生错误,只打印最后一行。

head -10 file.txt | tail -1

cat -n

cat -n可以显示出每一行的行号。然后再用grep正则匹配数字10。这明显不行,第100行也被显示,而且不是行的原始信息,前面还带了一个行号。

cat -n file.txt | grep 10

sed命令处理文件

sed -n表示按行处理文件。10p10代表第十行,p代表print打印,连起来就是只打印第十行。

sed -n '10p' file.txt

结果

shell-tenth-line-1

awk命令

这个先不急,以后再说。

代码


结果

shell-tenth-line-2