如何使用awk打印文件的最后一条记录?
答案 0 :(得分:2)
类似的东西:
awk '{ prev_line=this_line; this_line=$0 } END { print prev_line }' < file
基本上,在当前行之前记录该行,直到您到达文件末尾,然后打印上一行。
编辑以回复评论:
只提取倒数第二行中的第二个字段:
awk '{ prev_f2=this_f2; this_f2=$2 } END { print prev_f2 }' < file
答案 1 :(得分:1)
您可以使用awk
执行此操作,但您可能会发现:
tail -2 inputfile | head -1
将是一个更快的解决方案 - 它抓住整套的最后两行,然后是这两行中的第一行。
以下文字说明了这是如何运作的:
pax$ echo '1
> 2
> 3
> 4
> 5' | tail -2 | head -1
4
如果必须使用awk
,您可以使用:
pax$ echo '1
2
3
4
5' | awk '{last = this; this = $0} END {print last}'
4
它的工作原理是将最后一行和当前行保留在变量last
和this
中,并在文件结束时打印出last
。