如何找到文件中的最后一个单词并忽略空格

如何找到文件中的最后一个单词并忽略空格

如何找到文件中的最后一个单词,即使在单词之后有空行

案子

我尝试这个来找到最后一个词

tail -1  /tmp/requests.txt

但没有输出

我尝试以下方法

 awk 'END {print $NF}'   /tmp/requests.txt

但没有输出

我只捕捉这个词尾-6(因为该单词在文件末尾之前有 6 个空行

 tail -6  /tmp/requests.txt
 "IN_PROGRESS"

那么如果我们有空格或没有空格,如何捕获最后一个单词

预期成绩

 echo $Last_word
 IN_PROGRESS

答案1

只需从底部开始阅读并打印至少包含“某事”的第一行的最后一个单词:

tac file | awk 'NF{print $NF; exit}'

例如:

$ cat -vet file     # note the spaces and tabs
hello$
bla ble bli$
   $
^I$
$ tac file | awk 'NF{print $NF; exit}'
bli

如果你碰巧没有tac,只需使用正常读取文件时相同的逻辑即可:

awk 'NF{last=$NF} END{print last}' file

也就是说,只要一行中有“某物”,就存储最后一个单词。最后,打印存储的值。

答案2

跟踪最后一个非空行的最后一个单词并在末尾打印它:

awk '/\S/{ s=$NF; } END{ print(s); }'

无需将整个文件保留在内存中以相反的顺序打印其行或类似的内容。

答案3

sed -n '$p' example.txt | awk '{print $NF}'

这将获取文件的最后一行并显示最后一行的最后一列。

相关内容