如何保留管道中的更新输出,例如当输出具有“\r”时

如何保留管道中的更新输出,例如当输出具有“\r”时

每当我通过管道传输一些正在更新的输出(比如使用\r),例如到寻呼机(less),或者对其中的部分进行着色时,管道似乎会删除正在更新的行。知道如何在做我想做的其他事情的同时保留更新行为吗?

微量元素:

(
  echo num1;
  for i in {01..99}; do
    printf "num2: %s\r" $i;
    sleep 0.5;
  done
)

通常上面显示:

num1
num2: NN

其中从到NN计数。但是,如果我将上面的内容通过管道传输到,我只会看到该行,或者说我将它通过管道传输到以使所有出现的粗体像这样:0199lessnum1sednum

(
  ...
) | sed -e "s/num/$(tput bold)&$(tput sgr0)/g"

我只看到“编号1”,带有“num2”的行消失了。如何保留第二行?

相关内容