我有一个运行并输出到文本文件的bash脚本,但它使用的颜色代码也包括我想知道的是如何从文件中删除它们,即
^[[38;1;32mHello^[[39m
^[[38;1;31mUser^[[39m
所以我只想留下Hello和User
答案 0 :(得分:3)
sed -r "s/\x1B\[(([0-9]{1,2})?(;)?([0-9]{1,2})?)?[m,K,H,f,J]//g" file_name
此命令从文件中删除特殊字符和颜色代码
这些是一些ANSI代码:
ESC[#;#H or ESC[#;#f
将光标移动到#行#列
ESC[2J
清除屏幕和主页光标
ESC[K
清除到行尾,
请注意,如果代码清晰,则既没有数字也没有分号;
同意以下评论: 如果数字超过2位,请使用:
sed -r "s/\x1B\[(([0-9]+)(;[0-9]+)*)?[m,K,H,f,J]//g" filename
答案 1 :(得分:1)
这是否解决了这个问题?
$ echo "^[[38;1;32mHello^[[39m" | sed -e 's/\^\[\[[0-9;]\{2,\}m//g'
Hello
欢呼声!!
答案 2 :(得分:1)
我的解决方案:
... | sed $'s/\e\\[[0-9;:]*[a-zA-Z]//g'
冒号可以支持某些旧终端类型的转义符。