目录
使用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_es