Jot*_*tne 17
要获得最后一行中的最后一个字:
awk 'END {print $NF}' file
Run Code Online (Sandbox Code Playgroud)
更新.
如果您想使用awk并确保有单词,请使用:
tac a.txt | awk 'NF{print $NF; exit}'
Run Code Online (Sandbox Code Playgroud)
tac反向打印文件.只要线条不为空,它就会NF在{}块前面工作.在这种情况下,它会打印最后一个字段(NF代表字段数,$NF最后一个字段),然后退出.
$ cat a
hello my name
is blabla
and this is
my comment.
<--- note an empty line
$ tac a | awk 'NF{print $NF; exit}'
comment.
Run Code Online (Sandbox Code Playgroud)
awk '{w=NF?$NF:w} END{print w}' file
Run Code Online (Sandbox Code Playgroud)
w=$NF?$NF:w.这是一个三元运算符:if NF>0(无空行),设置w为最后一个字段.否则,保持原样.最后,在END{},打印最后保存的单词.
如果你想使用它sed,你可以使用它,这适用于最后没有空行:
sed -n '${s/.* //; p}' a.txt
Run Code Online (Sandbox Code Playgroud)
$代表文件的最后一行.在那种情况下,做内部的事情{}.s/.* //; p删除一切到最后的空间.然后打印p.