如何使用 bash 获取每行中的最后一个单词

新手上路,请多包涵

例如我有一个文件:

 $ cat file

i am the first example.

i am the second line.

i do a question about a file.

我需要:

 example, line, file

我打算用“awk”,但问题是这些词在不同的空间

原文由 camilo soto 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 675
2 个回答

尝试

$ awk 'NF>1{print $NF}' file
example.
line.
file.

要在您的示例中的一行中获得结果,请尝试:

 {
    sub(/\./, ",", $NF)
    str = str$NF
}
END { print str }

输出:

 $ awk -f script.awk file
example, line, file,

纯重击:

 $ while read line; do [ -z "$line" ] && continue ;echo ${line##* }; done < file
example.
line.
file.

原文由 Fredrik Pihl 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 grep 轻松完成:

 grep -oE '[^ ]+$' file

-E 使用扩展的正则表达式; -o 只输出匹配的文本而不是整行)

原文由 rici 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题