该命令的参数之一tr
是:
-u
保证任何输出都是无缓冲的。
在什么情况下最好不缓冲输出?
-u
例如,如果我希望每行都超长,我应该使用吗?
-u
例如,如果我的内存有限,我应该使用吗?
例如,如果我将其通过管道传输awk
(逐行处理文件),那么这是否意味着最好使用缓冲输出?
答案1
无缓冲的输出效率较低,所以如果有很多,它会更慢。无缓冲的输出可能会对每个字符进行系统调用(尽管通常不会)。
优点是您可以立即获得输出,而不是在缓冲区填满并刷新时获得输出。对于较慢的输出(例如一次一行或更少)并且可以交互式查看,这会更好。
在 Unix 中,输出通常是块缓冲或行缓冲,很少是无缓冲的。
您可以使用命令更改命令的默认值stdbuf
,该命令是 GNU coreutils 的一部分。