【问题标题】:how to print the nth line from the end of a file in bash?如何在bash中打印文件末尾的第n行?
【发布时间】:2013-11-17 23:44:19
【问题描述】:

有没有办法打印文件的第 n 行,从文件后面开始计算?

我知道如何从文件的前面做,但从文件的后面做似乎更棘手。

【问题讨论】:

    标签: bash sed tail


    【解决方案1】:

    快速简便的方法是tail -n $n file | head -n 1

    awk 的一个更有趣的方式是:

    awk -v n=$n '{x[NR%n]=$0}END{print x[(NR+1)%n]}' file
    

    如果少于n 行,tail | head 方法将打印文件的第一行,awk 方法将打印一个空行。

    【讨论】:

      【解决方案2】:

      又快又脏,倒数第 100 行:

      tail -n 100 yourfile | head -n 1
      

      如果文件少于 100 行,您将获得文件的第一行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-26
        • 1970-01-01
        • 2020-02-22
        • 2017-08-09
        • 1970-01-01
        • 1970-01-01
        • 2014-05-28
        • 1970-01-01
        相关资源
        最近更新 更多