[力扣]195. 第十行

Linux命令

Posted by JinFei on April 12, 2020

题目描述

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

Example1:

  假设 file.txt 有如下内容:
    Line 1
    Line 2
    Line 3
    Line 4
    Line 5
    Line 6
    Line 7
    Line 8
    Line 9
    Line 10
    你的脚本应当显示第十行:
    Line 10

说明:

  1. 如果文件少于十行,你应当输出什么?
  2. 至少有三种不同的解法,请尝试尽可能多的方法来解题。
# Read from the file file.txt and output the tenth line to stdout.
# sed -n '10p' file.txt

## NR 为指定行
# awk 'NR==10' file.txt

## 从第10行往下,然后取第一行
tail -n +10 file.txt | head -1

grep -n "" file.txt | grep -w '10' | cut -d: -f2
sed -n '10p' file.txt
awk '{if(NR==10){print $0}}' file.txt


但是考虑到说明中行数不足10的情况处理,可以做如下处理:
row_num=$(cat file.txt | wc -l)
echo $row_num
if [ $row_num -lt 10 ];then
    echo "The number of row is less than 10"
else
    awk '{if(NR==10){print $0}}' file.txt
fi