BASH:给定一个文本文件 file.txt,请只打印这个文件中的第十行。

给定一个文本文件 file.txt,请只打印这个文件中的第十行。

刷leecode遇到一道很简单的题,:给定一个文本文件 file.txt,请只打印这个文件中的第十行。然而我一开始做错了~还没找出来原因,所以想记录下

O,这里题目要求是用shell做,我就用了bash。
大家可以先自己写下自己的答案,然后康康是不是也和我一样,做错了呢,哈哈~


下面是:

错误答案:

这是我的答案:head -n 10 file.txt| tail -n 1

这个错误的答案哦~

当实际行数不足10行时,第10行应当为空,而我这样则会默认将最后一行认为成第10行,从而输出了一个错误答案。

正确答案:

tail -n +10 file.txt | head -1
以前没太关注过tail、head命令中的-n参数后面数字为正负数的问题,看了这个答案后去试了下,有这样一个案例:

BASH:给定一个文本文件 file.txt,请只打印这个文件中的第十行。
*也就是说:默认tail -n 正数(不加+号),则会倒叙输出n行
*tail -n 正数(加+号),则会倒叙输出至第n行,如果行数不足,则不输出。
BASH:给定一个文本文件 file.txt,请只打印这个文件中的第十行。


另外在题解中:
解法二:
sed -n 10p file.txt
解法三:
awk ‘NR == 10’ file.txt

都是很好的shell解法~