有没有一种方法可以从文件的末尾开始计数,打印出文件的第n行?
我知道如何从文件前面开始做到这一点,但是从文件后面开始做似乎更加棘手。
我知道如何从文件前面开始做到这一点,但是从文件后面开始做似乎更加棘手。
一个快速简便的方法是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
方法则会打印一个空行。
如果您的文件行数少于n
,tail | head
方法将打印文件的第一行,而awk
方法则会打印一个空行。
简单粗暴,从结尾数起第100行:
tail -n 100 yourfile | head -n 1