如何删除bash输出中的装饰颜色字符?

如何删除bash输出中的装饰颜色字符?,bash,sed,colors,tr,Bash,Sed,Colors,Tr,控制台程序(translate shell)有一个带有颜色的输出,并为此使用特殊的修饰字符:^[[22m,^[[24m,^[[1m…等等 我想删除它们以获得纯文本 我尝试使用tr-d“^[[22m]”和sed的/[\^[[22m]//g',但只删除了数字,没有删除特殊字符^[ 谢谢。我在关于使用ANSI转义码的文章中发现: -no-ansi Do not use ANSI escape codes. 因此,您应该在启动程序时添加此选项。您有多个选项: 正如Jens在其他回答中指出

控制台程序(translate shell)有一个带有颜色的输出,并为此使用特殊的修饰字符:^[[22m,^[[24m,^[[1m…等等

我想删除它们以获得纯文本

我尝试使用tr-d“^[[22m]”和sed的/[\^[[22m]//g',但只删除了数字,没有删除特殊字符^[

谢谢。

我在关于使用ANSI转义码的文章中发现:

-no-ansi
    Do not use ANSI escape codes.

因此,您应该在启动程序时添加此选项。

您有多个选项:

  • 正如Jens在其他回答中指出的那样,没有ansi
编辑

这项工作做得很好:

sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"

该选项可能更好,但要长得多,因此您可能希望创建一个单独的脚本文件,因为它太长了,而不仅仅是一行一行。

不,该选项也会删除其他字符(áéíóúñ…)@那么你做错了什么。这些字符不是ansi转义符,不应该受到
-no ansi
的影响。这听起来更像是配置问题(或translate shell中的错误)。commandlinefu中的选项工作得很好,谢谢:sed-r“s/\x1B[([0-9]{1,2})(;[0-9]{1,2})?[m|K]//g”这是一个仅链接的答案;请在答案中提供相关详细信息。
的/\x1b\[[0-9;]*m//g'
regex