首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在新行上打印行更改(带有'\r'),而不是更新行

在新行上打印行更改(带有'\r'),而不是更新行
EN

Unix & Linux用户
提问于 2023-04-24 08:43:27
回答 1查看 50关注 0票数 0

根据我的理解,许多程序使用stdout返回行来动画它们的命令行输出(stderr\r )。例如,apt-get update将更新包下载百分比,或者docker-compose up将显示正在更新和/或启动的容器列表。当然还有成千上万的其他例子。

我需要以下内容:对于每一行更新,实际上在新行上重写这一行。因此,让我们以上面显示的gif为例,我想要这样的东西:

代码语言:javascript
复制
buntu-22.04.2-deskt   0%[                    ]  25,59M  11,5MB/s               
untu-22.04.2-deskto   0%[>                   ]  30,68M  11,5MB/s               
ntu-22.04.2-desktop   0%[>                   ]  35,21M  11,5MB/s       
tu-22.04.2-desktop-   0%[=>                  ]  40,47M  11,5MB/s       
...        

我该怎么做?请注意,我希望它适用于任何使用此功能的程序。

我试过:command | tr '\r' '\n',但这不管用。

EN

回答 1

Unix & Linux用户

发布于 2023-04-24 20:57:58

诅咒只是使用任何终端支持。对于Linux和其他类似Unix的系统,它将使用ANSI序列。

例如,在命令行中尝试printf "\033[17;62H"。您会发现光标将转到第17行第62列。

如果您查看维基百科条目ANSI转义码并向下滚动到CSI (Control Sequence Introducer) sequences,您将看到所需的内容。

我建议您查看整个页面,因为您可以做很多事情,只有正确的字符序列。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/743850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档