# Linux下替换删除文件中的颜色等控制字符的方法

Linux下替换删除文件中的颜色等控制字符的方法

文章目录

  • Linux下替换删除文件中的颜色等控制字符的方法
    • 1 Linux下的控制字符(显示的文字并不是他本身):
    • 2 颜色字符范例:
    • 3 替换
    • 4 最后

我们在shell编程显示输出时,会定义文字颜色,以便于识别,但有时还要把输出的文字发送给开发人员,此时文件里的颜色控制字符非常影响阅读体验,所以最好把他删除替换。

方法是:找到控制字符的Unicode编码(假设是utf-8编码的文件),并把他替换为空

1 Linux下的控制字符(显示的文字并不是他本身):

vim显示(彩色) less显示(白底黑字) Unicode编码
^[ ESC 0x1B (\x1B)
^M ^M ox0D (\x0D)

更多控制字符请看:man console_codes

2 颜色字符范例:

^[[31m
^[[34;1m
^[[30;42;1m

3 替换

  • 替换【^[】颜色相关控制字符:
sed  -i -E  "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?){0,2}[m]//g"   t.txt
  • 替换【^M】控制字符
sed  -i -E  "s/\x0D//g"  t.txt
  • 替换更多
sed  -i -E  -e "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?){0,2}[m|A-Z]//g"  -e "s/\x0D//g"  t.txt

4 最后

img

爱你!

你可能感兴趣的:(IT,linux,运维,服务器)