来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/tenth-line
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
一、题目描述
给定一个文本文件 file.txt,请只打印这个文件中的第十行。
示例:
假设 file.txt 有如下内容:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
你的脚本应当显示第十行:
Line 10
说明:
- 如果文件少于十行,你应当输出什么?
- 至少有三种不同的解法,请尝试尽可能多的方法来解题。
二、题解
2.1 tail+head
返回文本中的第十行,最简单的方式可以通过tail + head
配合输出,通过head
取到前面10行,然后输出前面10行的最后一行。很容易能想到的办法:
head -10 file.txt | tail -1
但这么做就错了,题目中已经提到如果文件少于10行,你应当输出什么?。一旦文件少于10行,上面的命令会输出文件的最后一行,不满足题意。正确的命令:
tail -n +10 file.txt | head -1
-n +10
表示从第10行开始到结束,意思是先从第10行开始取到结束的所有数据然后取第一行。
2.2 sed
sed的p模式可以直接打印指定行:
sed -n '10p' file.txt
2.3 awk
awk内置变量NR
表示行数
awk 'NR==10' file.txt
此处评论已关闭