[leetcode-shell]195-第十行

来源:力扣 (LeetCode)

链接:https://leetcode-cn.com/problems/tenth-line

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

一、题目描述

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

示例:

假设 file.txt 有如下内容:

你的脚本应当显示第十行:

说明:

  1. 如果文件少于十行,你应当输出什么?
  2. 至少有三种不同的解法,请尝试尽可能多的方法来解题。

二、题解

2.1 tail+head

返回文本中的第十行,最简单的方式可以通过 tail + head 配合输出,通过 head 取到前面 10 行,然后输出前面 10 行的最后一行。很容易能想到的办法:

但这么做就错了,题目中已经提到如果文件少于 10 行,你应当输出什么?。一旦文件少于 10 行,上面的命令会输出文件的最后一行,不满足题意。正确的命令:

-n +10 表示从第 10 行开始到结束,意思是先从第 10 行开始取到结束的所有数据然后取第一行。

2.2 sed

sed 的 p 模式可以直接打印指定行:

2.3 awk

awk 内置变量 NR 表示行数

发表评论