一个控制台程序(translate-shell)具有彩色输出,并使用特殊的修饰字符:^[[22m,^[[24m,^[[1m等。
我想要将它们删除以获取纯文本。
我尝试使用tr -d "^[[22m"和sed 's/[\^[[22m]//g',但只删除了数字,而不是特殊字符^[。
谢谢。
-no-ansi
编辑
commandlinefu 的解决方案效果很好:
sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
Unix.stackexchange提供的解决方案可能更好,但代码长度较长,建议将其存为独立脚本文件并执行,而不是仅使用一行命令。
's/\x1b\[[0-9;]*m//g'
效果更佳。 - beluchin