什么时候在 tr 中添加 -u 有益?

什么时候在 tr 中添加 -u 有益?

该命令的参数之一tr是:

-u 保证任何输出都是无缓冲的。

在什么情况下最好不缓冲输出?

-u例如,如果我希望每行都超长,我应该使用吗?

-u例如,如果我的内存有限,我应该使用吗?

例如,如果我将其通过管道传输awk(逐行处理文件),那么这是否意味着最好使用缓冲输出?

答案1

无缓冲的输出效率较低,所以如果有很多,它会更慢。无缓冲的输出可能会对每个字符进行系统调用(尽管通常不会)。

优点是您可以立即获得输出,而不是在缓冲区填满并刷新时获得输出。对于较慢的输出(例如一次一行或更少)并且可以交互式查看,这会更好。

在 Unix 中,输出通常是块缓冲或行缓冲,很少是无缓冲的。

您可以使用命令更改命令的默认值stdbuf,该命令是 GNU coreutils 的一部分。

相关内容