如何以十六进制查看文件/终端ANSI转义码并禁用其解析
解决ANSI代码解析与查看问题
一、完整打印包含ANSI代码的字符串
要让终端输出原始的ANSI转义序列而非解析后的彩色文本,有几种实用方法:
使用
cat的可视化参数:
执行cat -v testfile,会将不可打印的ESC字符转换为^[,输出显示为^[[34;20mtest^[[0m,直观看到转义结构。用
sed替换转义字符:
执行sed 's/\x1b/\\x1b/g' testfile,把文件中实际的ESC字节替换成字符串\x1b,直接输出你想要的\x1b[34;20mtest\x1b[0m。借助
printf的转义输出:
执行printf '%q\n' "$(cat testfile)",%q会自动将特殊字符转义为Shell可识别的格式,输出结果就是带\x1b的完整序列。
二、以十六进制格式查看ANSI转义码
要查看文件中ANSI转义码的十六进制表示,常用以下工具:
xxd命令:
执行xxd testfile,会同时输出十六进制字节和对应的ASCII字符,ESC字符对应的十六进制是1b,你会看到类似:00000000: 1b5b 3334 3b32 306d 7465 7374 1b5b 306d .[34;20mtest.[0mhexdump命令:
执行hexdump -C testfile,输出更规整的十六进制与ASCII对照,清晰展示每个字节:00000000 1b 5b 33 34 3b 32 30 6d 74 65 73 74 1b 5b 30 6d |.[34;20mtest.[0m| 00000010od命令:
执行od -t x1 testfile,仅输出十六进制字节序列,适合只关注原始字节的场景:0000000 1b 5b 33 34 3b 32 30 6d 74 65 73 74 1b 5b 30 6d 0000020
内容的提问来源于stack exchange,提问作者sezanzeb
相关产品推荐
相关产品推荐

