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参数后面数字为正负数的问题,看了这个答案后去试了下,有这样一个案例:

在这里插入图片描述
*也就是说:默认tail -n 正数(不加+号),则会倒叙输出n行
*tail -n 正数(加+号),则会倒叙输出至第n行,如果行数不足,则不输出。
在这里插入图片描述


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

都是很好的shell解法~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值