实时显示回车



基本上我有这个:

 while true; do printf "%sr" $(date +"%H:%M:%S"); sleep 1; done | sed s/"(^[^$]*$)"/"[test] 1"/g  
本例的目标是使用回车符在同一行上打印日期,然后通过sed过滤输出,将[test]添加到该行,就像使用 一样。
 `printf "[test] %sr" $(date)`  

但是sed没有输出。我试过stdbufunbuffer,他们没有工作,或者我没有正确使用它们。我想让这工作使用ffmpeg,但更重要的是任何类型的输出,使用回车

你可以这样做:

while true; do printf "%sn" $(date +"%H:%M:%S"); sleep 1; done|awk '{printf("[test]%sr",$0)}'

当您使用printf "%sr"时,您在一行中打印字符串,这意味着行永远不会结束,但是sed只会在一行结束时工作(意味着这行完成)。我想这就是为什么你的代码不能工作。

你最好让最后一个命令打印成一行。

最新更新