pbcopy命令复制man内容乱码?求可行修复方案
解决
man命令输出复制到Markdown的乱码问题 这不是pbcopy的Bug,问题根源是man默认向终端输出时会附带终端控制字符(用于实现高亮、格式排版的转义序列),pbcopy会原样复制这些不可见字符,粘贴到Markdown文件后就显示成乱码。
以下是几种高效的修复方案:
让
man直接输出纯文本再复制:
使用man的-P参数指定用cat替代默认分页器,跳过终端格式输出:man grep -P cat | pbcopy这样输出的内容就是无控制字符的纯文本,复制粘贴到Markdown里完全正常。
过滤终端控制字符后再复制:
用col命令移除所有退格和终端控制序列:man grep | col -b | pbcopy适合需要保留分页器预览(比如先看内容再复制)的场景,过滤后得到纯文本。
优化直接输出到文件的方法:
你之前用man ls > man-ls.md没问题,是因为当输出目标不是终端时,man会自动关闭终端格式。如果要复制内容,也可以先输出到文件再复制:man grep -P cat > man-grep.md cat man-grep.md | pbcopy既可以保存文件,又能快速复制纯文本内容。
补充:为什么直接重定向到文件没问题,但pipe到pbcopy就乱码?因为pbcopy会被man识别为终端设备,所以man会输出带格式的控制字符;而直接输出到文件时,man检测到输出不是终端,就会输出纯文本。
内容的提问来源于stack exchange,提问作者xgqfrms
相关产品推荐
相关产品推荐

