如何在bash中打印文件倒数第n行?

6
有没有一种方法可以从文件的末尾开始计数,打印出文件的第n行?
我知道如何从文件前面开始做到这一点,但是从文件后面开始做似乎更加棘手。
2个回答

12

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

awk更有趣的方法是:

awk -v n=$n '{x[NR%n]=$0}END{print x[(NR+1)%n]}' file
如果您的文件行数少于ntail | head方法将打印文件的第一行,而awk方法则会打印一个空行。

如果您的文件行数少于ntail | head方法将打印文件的第一行,而awk方法则会打印一个空行。


5

简单粗暴,从结尾数起第100行:

tail -n 100 yourfile | head -n 1

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接