Linux 删除 颜色转义字符 乱码 \x1b

这篇具有很好参考价值的文章主要介绍了Linux 删除 颜色转义字符 乱码 \x1b。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Linux颜色控制

方式一:添加sed正则命令

方式二:将输出写入文件再读取

Git颜色控制


使用Python paramiko ssh 获取 git 输出时,出现乱码,实际上是终端输出的ANSI颜色转义字符,用于控制终端颜色展示:

\x1b[?1h\x1b=\r  master\x1b[m\r\n

Linux颜色控制

可以通过以下方式删除ANSI颜色转义字符:

方式一:添加sed正则命令

source /etc/profile; git branch | sed -r "s/\x1B\[[0-9;]*[a-zA-Z]//g"

注:以上正则命令 \x1B\[[0-9;]*[a-zA-Z] 通过python正则只能清除部分颜色转移字符,原因不明:

import re

def remove_color_escape_sequences(log_string):
    pattern = r'\x1B\[[0-9;]*[a-zA-Z]'
    cleaned_string = re.sub(pattern, '', log_string)
    return cleaned_string

# 示例用法
log_string = '\x1b[?1h\x1b=\r  master\x1b[m\r\n'
cleaned_log_string = remove_color_escape_sequences(log_string)
print([cleaned_log_string])
# 输入:'\x1b[?1h\x1b=\r  master\x1b[m\r\n'
# 输出:'\x1b[?1h\x1b=\r  master\r\n'

注:因控制台支持ANSI颜色转移字符解析,因此直接打印字符串无法看出其中的ANSI颜色转移字符,可将字符串写入列表查看

方式二:将输出写入文件再读取

source /etc/profile; git branch > log.txt; cat log.txt; rm -rf log.txt

Git颜色控制

git本身也有控制颜色展示的配置,但只能控制颜色部分,头尾的ANSI颜色转义字符并不能去除:

source /etc/profile

# 开启颜色显示
git config --global color.branch auto
git config color.branch auto

# 关闭颜色显示
git config --global color.branch never
git config color.branch never

注:

  • 加载source /etc/profile才能生效
  • 关闭和开启需要对应,如果使用git config color.branch never命令关闭,则必须使用git config color.branch auto命令开启

Linux 删除 颜色转义字符 乱码 \x1b,Linux,Git,Python,ANSI

Linux 删除 颜色转义字符 乱码 \x1b,Linux,Git,Python,ANSI

对应的输出有2行:

# auto
['\x1b[?1h\x1b=\r* \x1b[32m(HEAD detached at 6e7e42203a)\x1b[m\x1b[m\r\n', '\r\x1b[K\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b[?1l\x1b>']
# never
['\x1b[?1h\x1b=\r* (HEAD detached at 6e7e42203a)\x1b[m\r\n', '\r\x1b[K\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b[?1l\x1b>']

 

 ChatGPT真是个好东西!文章来源地址https://www.toymoban.com/news/detail-559262.html

到了这里,关于Linux 删除 颜色转义字符 乱码 \x1b的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IntelliJ IDEA 控制台中文乱码和错误: 非法字符: ‘\ufeff‘

    最近在 Windows 电脑上使用 IntelliJ IDEA 运行 Java 程序时,发现运行报错且控制台显示乱码。如下图1: 有点蒙,这是啥意思?又报错又是乱码。 1、先来解决乱码吧。把 IDEA 的编码都设置为 UTF-8。 如下图2: 不行,运行结果依旧。 2、网上查阅资料提示,需要把 Windows 的系统默认

    2024年02月09日
    浏览(58)
  • Linux开机自动挂载window密码有转义字符的共享文件夹

    文章阅读+操作时间在5分钟左右,耐心看可以节约你们找废料的时间,看完相信可以解决你们的问题!!!! 项目上遇到需要自动挂载windows共享盘到linux系统中,由于windows密码有英文逗号(,),被linux识别成了参数分隔符,在网上找了很多办法都不行,后来通过这种方式完美解

    2024年01月21日
    浏览(53)
  • java超简单实现文档在线预览功能,支持word\excel\text\pdf\图片等格式转pdf,aspost 转pdf部署linux中文乱码解决方案

    一、背景         在工作中需要对上传到服务器的各种类型包括但不限于word、pdf、excel等文件进行在线预览,前端比较菜搞不定,只能本人亲自上。         网上的经验比较多也比较乱, 有的只有预览,没有文件格式转换,有的也不说linux存在字体问题, 本文会直白的给

    2024年04月10日
    浏览(126)
  • jmeter参数化导致反斜杠(\)被转义

    前情提要: 在用jmeter做接口测试时,对请求体进行参数化,执行结果报错。但在不参数化的情况下,执行结果成功,而且参数化后,请求中读取到的参数是正确的(执行失败与执行成功时的参数一致)。 问题排查: 参数化后,请求中的两个反斜杠()变成了一个反斜杠(

    2023年04月14日
    浏览(39)
  • 关于转义符 \ 在php正则中的匹配问题

    今天做题遇到一个很经典的问题,记录一下,先看一段代码 看到这段代码的师傅们,思考一下,会输出success还是false 输出false,正则没有被匹配到,为什么呢? php解析正则时分为了两个步骤,一个是php对字符串的解析,之后才是对正则的解析,那么php在解析字符串时什么时

    2024年04月09日
    浏览(39)
  • linux下json字符串格式化、解决json.tool中文乱码

    环境: centos7.9 在有外网的情况下,如果对数据没有严格的保密,那么可以通过在线json解析网站 https://www.sojson.com/ 对json字符串进行格式化。本篇讲如何在Linux环境下使用命令对json字符串进行格式化。 修改json.tool程序,该程序存在于python系统库安装路径下的json/tool.py, json.

    2024年02月15日
    浏览(54)
  • SHELL 基础 显示字符颜色, 修改历史命令,Linux里的命令 执行顺序

    目录 echo 打印命令  :        显示字符串  :  显示转义字符 :   显示颜色  :   显示命令执行结果  :  history 历史命令 :  修改默认记录历史命令条数 :             历史命令的调用  :  命令别名    查看命令别名  :  命令的执行顺序  :   选项   :   

    2024年02月12日
    浏览(43)
  • java中字符串如何去掉转义字符

      处理代码: 处理结果:  java:StringEscapeUtils.unescapeJava去掉转义字符_小徐也要努力鸭的博客-CSDN博客 java中字符串如何去掉转义字符 - 码农教程

    2024年02月11日
    浏览(65)
  • C 语言的转义字符

    转义字符也叫转移序列,包含如下: 转移序列 \\0oo 和 xhh 是 ASCII 码的特殊表示。 八进制数示例: 代码: 结果: 电脑响了一声。 \\\'\\007\\\' 中的 0 可以省略一个或多个,或全部省略。代码示例: 结果一样,还是电脑响了一声。 如果电脑没有可以发出蜂鸣的硬件,则该程序不会有

    2024年02月14日
    浏览(41)
  • Python语言转义字符简介

    Python语言转义字符简介 转义字符(Escape Character)即标志着转义序列(escape sequence)开始的那个字符。 一些程序设计语言中就规定了一个用于转义的字符 ,它后面的字符不能按照这些字符的字面意义解释——转义字符开头的该字符序列具有不同于该字符序列单独出现(没有

    2023年04月18日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包