inotifywait 没有输出 | awk

inotifywait 没有输出 | awk

我正在尝试使用此处找到的一行代码的一部分:监视文件夹中是否有新文件的脚本?

当我尝试以下过程时,我没有得到任何输出,而且我不明白为什么。

在 1 号航站楼:

inotifywait -m ~/somefolder | awk '{ print $3; fflush() }' 

然后在 2 号航站楼:

touch ~/somefolder/newfile

当不通过管道传输到 awk 时,inotifywait 会将所有预期事件列出到 stdout,并且重定向到文件也没有问题。 awk 似乎也可以独立于 inotifywait 正常工作,在通过管道传输到它的文本上,其结构类似于 inotifywait 的输出。将两者一起使用对我来说不起作用。

编辑:

awk 是我机器上 mawk 的别名,但不起作用。然而,gawk 成功了,并按预期工作。

答案1

正如您所发现的,mawk 缓冲其输入,因此一旦通知消息总数达到 k 左右,您可能会看到效果。链接的文章表明 mawk 有一个-Winteractive标志可以禁用它,但我可以检查它。

相关内容