将ANSI代码引入流中

时间:2017-08-04 09:35:12

标签: bash sed stdout

我希望任何标准输出仅显示在一行上。每一行都应该覆盖最后一行。

通常,我会这样做

echo -ne "Overwrite me. \033[0K\r"

但是现在我想管道输出,因为echo不是过滤器,我需要使用sed或类似的东西。

cat story.txt | some.sed.like.util.for.replacing.$.with.\033[0K\r

1 个答案:

答案 0 :(得分:1)

无法使用

sed,因为sed将始终在其输出中附加换行符。您需要在shell中使用while循环:

while read -r line ; do
    echo -en "\r\033[0K${line}"
    sleep 1
done < story.txt