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

文章介绍了在Linux环境下如何使用sed命令删除或替换文件中的颜色控制字符和换行符,以提高文本的可读性。主要方法包括使用正则表达式匹配Unicode编码如x1B和x0D,并进行替换操作。

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


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

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

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

vim显示(彩色)less显示(白底黑字)Unicode编码
^[ESC0x1B (\x1B)
^M^Mox0D (\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

爱你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值