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