如何在bash中打印文件末尾的第n行?

时间:2013-11-17 23:44:20

标签: bash sed tail

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

我知道如何从文件的前面进行操作,但是从文件的后面进行操作似乎更棘手。

2 个答案:

答案 0 :(得分:9)

快捷方式是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方式将打印一个空行。

答案 1 :(得分:5)

从头到尾快速而肮脏,第100行:

tail -n 100 yourfile | head -n 1

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