gpt4 book ai didi

file - 打印文件中一行的最后一列

转载 作者:行者123 更新时间:2023-12-03 04:40:14 27 4
gpt4 key购买 nike

我有一个不断被写入/更新的文件。我想找到包含特定单词的最后一行,然后打印该行的最后一列。

该文件看起来像这样。随着时间的推移,将会添加更多 A1/B1/C1 行。

A1 123 456
B1 234 567
C1 345 678
A1 098 766
B1 987 6545
C1 876 5434

我尝试使用

tail -f file | grep A1 | awk '{print $NF}'

打印值766,但没有任何输出。

有办法做到这一点吗?

最佳答案

由于缓冲,您什么也看不到。当有足够的行或到达文件末尾时,将显示输出。 tail -f表示等待更多输入,但 file 中没有更多行所以管道到 grep永远不会关闭。

如果省略-f来自tail输出立即显示:

tail file | grep A1 | awk '{print $NF}'
<小时/>

@EdMorton 当然是对的。 Awk可以搜索A1同样,这会将命令行缩短为

tail file | awk '/A1/ {print $NF}'

或不带尾部,显示包含 A1 的所有行的最后一列

awk '/A1/ {print $NF}' file
<小时/>

感谢@MitchellTracy 的评论, tail 可能会错过包含 A1 的记录因此你根本没有得到任何输出。这可以通过切换 tail 来解决和awk ,首先搜索整个文件,然后才显示最后一行:

awk '/A1/ {print $NF}' file | tail -n1

关于file - 打印文件中一行的最后一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13046167/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com