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 最后
爱你!