删除Linux上的终端输出

2024-01-15

我正在编写一个命令行程序,它将有一个状态栏,很像 wget。

我面临的主要问题是:如何删除已经发送到 stdout/stderr 的内容?

我有一个想法:使用退格字符“\b”并删除我发送的输出。这是最好的方法吗?这是唯一的方法吗?有没有更好的办法?

PS:我不想使用像ncurses这样的东西。普通老C请。

Thanks


EDIT:

我也可以向上和/或向下吗?示例:我有 10 行输出,我想将第 3 行更改为Doing ABC to ABC: Done。我怎样才能做到这一点?

另外,谁能发布有关 VT102 角色的更多详细信息吗?它有什么能力?如果您有任何好的链接,请在此发布。

Thanks


基本格式控制字符包括退格键 (\b)、制表符 (\t)、换行符 (\n) 和回车符 (\r)。如果您需要更多,那么您可以使用ANSI X3.64 http://en.wikipedia.org/wiki/ANSI_escape_code/ ISO/IEC 6429 /ECMA-48 http://www.ecma-international.org/publications/standards/Ecma-048.htm转义序列;至少VT100 子集 http://ascii-table.com/ansi-escape-sequences-vt-100.php被大多数现代终端和模拟器所识别。使用 ncurses 的一个优点是,它会查找特定终端的功能,因此即使您的终端使用不同的转义序列集,它也能正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

删除Linux上的终端输出 的相关文章

  • C# Outlook 从收件人获取 CompanyName 属性

    我目前正在使用 C 编写 Outlook 2010 AddIn 我想要的是从我从 AppointmentItem 中提取的 Recipient 对象中获取 CompanyName 属性 因此 有了 AppointmentItem 的收件人
  • 如何调整 Windows 窗体以适应任何屏幕分辨率?

    我知道这是重复的问题 但我检查了所有其他相关问题 他们的答案没有帮助 结果仍然与屏幕截图 2 中所示相同 我是 C Windows 窗体新手 如截图1所示 我有Form1有一些控件 每组控件都放在一个面板中 我在 PC1 中设计了应用程序
  • C++中的类要具备什么条件才能成为容器?

    我是 C 编程新手 偶然发现了这个术语containers举例如下vector deque map etc 一个企业的最低要求应该是什么class应该满足被称为container in C 我将从 范围 这个概念开始 Range 只有两个方
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 以下 PLINQ 代码没有改进

    我没有看到使用以下代码的处理速度有任何改进 IEnumerable
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • 如果在代码中添加元素,“FindName”将不起作用

    在 WPF 应用程序中 如果在 XAML 中声明 ContentControl
  • 在 MacOS 终端上运行 ffmpeg [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我对 MacOS 相当陌生 我发现使用终端来获取信息并不容易ffmpeg和我在 Window 上一样正常运行 我有 ffmpeg 二进制文件ffmpe
  • 如何调用与现有方法同名的扩展方法? [复制]

    这个问题在这里已经有答案了 我有这样的代码 public class TestA public string ColA get set public string ColB get set public string ColC get se
  • 与 Entity Framework Core 2.0 的一对零关系

    我正在使用 C 和 NET Framework 4 7 将 Entity Framework 6 1 3 Code First 库迁移到 Entity Framework Core 我一直在用 Google 搜索 Entity Framew
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 初始化列表在 VC10 中不起作用

    我在 VC 2010 中编写了这个程序 class class1 public class1 initializer list
  • MSVC编译器下使用最大成员初始化联合

    我正在尝试初始化一个LARGE INTEGER在 C 库中为 0 确切地说是 C 03 以前 初始化是 static LARGE INTEGER freq 0 在 MinGW 下它产生了一个警告 缺少成员 LARGE INTEGER Hig
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request
  • Emacs C++,打开相应的头文件

    我是 emacs 新手 我想知道 是否有在头文件 源文件和相应的源文件 头文件之间切换的快捷方式 是否有像通用 emacs 参考卡那样的参考卡 Thanks There s ff find other file 您可以使用以下方法将其绑定到
  • 是否可以使用 Dapper 流式传输大型 SQL Server 数据库结果集?

    我需要从数据库返回大约 500K 行 请不要问为什么 然后 我需要将这些结果保存为 XML 更紧急 并将该文件通过 ftp 传输到某个神奇的地方 我还需要转换结果集中的每一行 现在 这就是我正在做的事情 TOP 100结果 使用 Dappe

随机推荐

  • 如何在pandas中连接两个具有不同列名的数据框? - Python

    df1 pd DataFrame a 1 2 3 x 4 5 6 y 7 8 9 df2 pd DataFrame b 10 11 12 x 13 14 15 y 16 17 18 我正在尝试使用来自的键合并两个数据框df1 我想我应该使用
  • 通过 VBA 修改 Access 报告中的图表属性(错误 2771)

    我正在构建一个 Access 报告 2010 版 并且希望能够根据用户在表单上的选择来自定义它 当我运行它时 出现错误 2771 您尝试编辑的绑定或未绑定对象框架不包含 OLE 对象 这是传递参数的代码 Private Sub Comman
  • 如何强制 where 子句中的函数在 oracle 中执行一次?

    我正在尝试根据 IP 地址查询相当大的 IP 城市 3 000 000 多行 表 我的源 IP 地址是点分符号 例如 127 0 0 1 表有两个字段存储为整数 例如 2130706433 因此 我需要将点分符号转换为我的 where 子句
  • ASP.NET MVC 3 远程验证以允许原始值

    我的用户模型的电子邮件属性上有一个远程属性 当我创建新用户时 它会创建并告诉用户电子邮件已在使用中 现在我的编辑表单遇到问题 如果用户想要更新值 它告诉用户他 她的电子邮件已在使用中 当正在使用的电子邮件是用户注册的电子邮件时 我不希望它给
  • 奇怪的段错误,可能与 realloc 有关

    char dumpTB TB tb char text malloc sizeof char int i 0 int x 0 string index tNode curr tb gt head while curr NULL while
  • 何时使用 Task.Run().GetAwaiter().GetResult() 和 ().GetAwaiter.GetResult()? [复制]

    这个问题在这里已经有答案了 我有一个需要同步调用的异步任务 是的 不幸的是 这是不可避免的 似乎有两种方法可以实现这一点 每种方法似乎都有效 所以我不确定哪种方法是最好的方法 或者是否有更好的方法 例如 var meetings Task
  • Pig 本地模式、组或 join = java.lang.OutOfMemoryError: Java 堆空间

    Using Apache Pig 版本 0 10 1 21 报道 CentOS 版本 6 3 最终版 jdk1 6 0 31 Virtualbox 上的 Hortonworks Sandbox v1 2 具有 3 5 GB RAM cat
  • OCaml 中的函子

    我在函子 及其结果类型 方面遇到了一些问题 下面 我有一个Set使用一个函子Ordered类型 我实际上使用了set mlOCaml 附带提供一些指导 但我似乎正在做所有事情ahem正确的 我创建了一个Ordered模块与整数并将其应用到S
  • VBA:为什么人们在“Next”语句中包含变量的名称?

    我总是这样写我的 For 循环 For foo 1 to 10 do something Next 然而 当我在网上阅读代码片段时 人们总是这样做 For foo 1 to 10 do something Next foo 我没有注意到两者
  • SSIS 脚本编辑器加载速度非常慢

    在我的角色中 我偶尔会使用 SSIS 在我最新的包中 我使用了脚本任务 我的机器速度足够快 运行 64 位并且有大量内存 但每当我尝试编辑脚本时 我必须等待近一分钟才能加载代码 我正在使用 VS 2012 和 SQL 2012 任何想法 不
  • 在 Redshift 外部表中引用转义引号

    我正在尝试从 csv 中创建一个 Redshift 外部表 其中包含转义引号 如中所述rfc4180 https www rfc editor org rfc rfc4180 如果使用双引号将字段括起来 则使用双引号 出现在字段内的内容必须
  • Python - sys.stderr 未保存到 .txt 或 .log

    我正在检查标准流的工作情况 目前我正在使用stderr使用Python 为了解释清楚 以下是我的代码 print Python testt 当我运行代码时 我得到以下信息 Python Traceback most recent call
  • 如何将 ASP.NET Core 应用程序发布到 ftp 服务器

    Visual Studio发布仅支持导入Web部署 有解决方法吗 Visual Studio 发布配置文件支持纯 FTP 作为目标 但它不支持 SFTP 您应该看到以下选项 网络部署 网络部署包 FTP 不幸的是不支持SFTP 文件系统 U
  • 静态常量变量在子类中不是常量

    我使用的是 Visual Studio 2008 有两个类 Parent 和 Child Parent在头文件中声明了一些静态const变量 然后在cpp文件中定义这些变量 当我尝试在子类的 switch 语句中使用定义作为 case 时
  • Visual Studio 2012 条件捆绑

    我刚刚开始使用 VS 2012 RC 我创建了一个带有母版页和单个 Web 表单的测试站点 目前 我正在使用此代码来捆绑整个Styles网站上的文件夹 全局 asax BundleTable Bundles EnableDefaultBun
  • 如何使用 CoffeeScript 存在运算符来检查某些对象属性是否未定义?

    我想使用 CoffeeScript 存在运算符来检查某些对象属性是否未定义 然而 我遇到了一个小问题 代码如下 console log test if test 编译为 if typeof test undefined test null
  • 为什么C#不允许运算符重载?

    为什么 C 不允许运算符重载 而 C 却允许 尝试超载时出现此错误 预期可重载二元运算符 我的示例代码看起来像 public static MyClass operator MyClass obj1 MyClass obj2 您可以在 C
  • 在 rmarkdown html 输出中添加 X-UA-Compatible

    我正在尝试添加以下标签 as the first一后
  • 如何在动画之后将更改应用到视图位置?

    我将 TranslateAnimation 应用于带有 FillAfter true 的 EditText 以保持其在动画末尾的位置 动画工作正常 但问题是我无法再输入编辑文本 我认为这是因为动画仅影响渲染而不修改实际的视图坐标 是否有可能
  • 删除Linux上的终端输出

    我正在编写一个命令行程序 它将有一个状态栏 很像 wget 我面临的主要问题是 如何删除已经发送到 stdout stderr 的内容 我有一个想法 使用退格字符 b 并删除我发送的输出 这是最好的方法吗 这是唯一的方法吗 有没有更好的办法