Linux新手求助:neofetch输出至文件出现乱码控制字符
解决Neofetch输出重定向后文件出现乱码符号的问题
嘿,我刚看到你的问题,这其实是个很常见的新手小坑——咱们一步步来搞定它:
问题根源
Neofetch默认会输出ANSI转义序列(就是你看到的^[[?25l这类奇怪字符),这些是终端用来渲染颜色、粗体、光标控制的指令。当你用>直接把输出重定向到文件时,这些指令会被当作普通字符写入文件,而nano这类文本编辑器不会解析这些终端控制码,所以就显示成了乱码。
解决方案1:直接生成纯文本输出
最省心的办法是让Neofetch输出不带格式的纯文本,用它的--stdout参数就行:
neofetch --stdout > system_info
这样写入到system_info里的就是干净的纯文本内容,用nano打开就完全正常了。
解决方案2:清理已生成的乱码文件
如果你已经生成了带乱码的文件,也不用重新跑Neofetch,可以用sed命令移除所有ANSI转义序列:
sed -i 's/\x1b\[[0-9;]*m//g' system_info
执行完这个命令后,打开文件就能看到正常内容了。
另外,有些系统还提供了ansi2txt工具(需要先安装,比如Debian/Ubuntu用sudo apt install ansi2txt,RHEL/CentOS用sudo dnf install ansi2txt),也可以用来清理:
cat system_info | ansi2txt > clean_system_info
这个会生成一个清理好的新文件clean_system_info。
内容的提问来源于stack exchange,提问作者Du2s
相关产品推荐
相关产品推荐

