linux 解决man命令输出到文档打开乱码问题

转载 2016年05月31日 00:47:36

来源:http://www.th7.cn/system/lin/201406/59466.shtml

为了写一篇关于linux命令的文章,懒得手动去输入,就想着把man命令的内容输出到.txt文档,然后在Windows直接拷贝粘贴。使用命令:

[root@centos ~]# man command >/home/command.txt

结果输出的文档在Windows操作系统下打开显示乱码(在linux操作系统下用vim命令查看同样显示乱码),在word下采用UTF-8或其它编码都不行。
解决办法就是稍微更改一下命令,改为:

[root@centos ~]# man command | col -b >/home/command.txt 

再次打开command.txt,一切正常。

在linux下使用vim命令查看生成的command.txt文件时我们会发现其实此“乱码”并非彼乱码,只是在字符间多了很多^H字符,这些字符在vim下显示为蓝色,一般表示控制字符,在Windows下用记事本工具打开则这些字符显示为乱码。
既然我们找到了“乱码”的规律,接下来就容易解决了。我们可以直接使用vim命令解决,具体方法如下:
在编辑模式下,输入进入命令模式,在后面输入%s/^H//g。完整的就是:%s/^H//g。(一定注意输入^H的方法是先按住Ctrl键不放手,然后依次键入V和H,copy是没有用的,要手动输入)输入完成后按Enter键执行命令。待命令执行完成之后,我们来查看结果,发现依然不是我们想要的,因为同时出现了很多重复的字母。这又该怎么解决呢?也不用着急,我们稍稍修改一下命令即可解决了。具体是将命令修改为:%s/.^H//g。按下回车键待命令执行完成,我们再来查看一下这篇文档会发现已经完全恢复到它本来应该有的样子了!
这是什么原理呢?我们回过头来再观察一下那些有规律的“乱码”,其实不仅仅是控制字符^H,在这个字符前面还有一个字符或者空格,我们需要同时将之删除。所以对命令进行简单的调整后问题迎刃而解。

在第一个解决方法中,其中的关键是命令col。col指令是一个标准的文本输入过滤器,它从标注输入设备读取文本内容,并把标注内容显示到标注输出设备。在许多UNIX/LINUX说明文件里,都有RLF控制字符。当我们运用shell特殊字符”>”和”>>”,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。
关于col命令的详情,请浏览:http://myblog.jyc.edu.cn/?p=62。

在这个问题中,将man手册的内容输出到文本文件中时会带有控制字符“H(表示Backspace (退格))”,使用vim编辑器即可以看到。所以使用col命令带-b参数即可以完成对此控制字符的过滤。



相关文章推荐

linux下 java 创建中文文件名乱码问题

原文地址:http://blog.csdn.net/youling_lh/article/details/9475519今天项目中遇到通过web上传文件到文件系统时,中文文件名乱码,一步步排查了htt...

linux 解决man命令输出到文档打开乱码问题

为了写一篇关于linux命令的文章,懒得手动去输入,就想着把man命令的内容输出到.txt文档,然后在Windows直接拷贝粘贴。使用命令: [root@centos ~]# man command...

linux下mysql数据库常用命令以及中文乱码问题的解决

登录数据库:mysql -u 用户名 -p,然后输入密码即可;进入数据库后会显示mysql命令行。接下来介绍常用命令: 1,显示数据库列表:show databases; 2,创建数据库:crea...

在Linux/Unix系统下用iconv命令处理文本文件中文乱码问题

iconv命令是运行于linux/unix平台的文件编码装换工具。当我们在linux/unix系统shell查看文本文件时,常常会发现文件的中文是乱码的,这是由于文本文件的编码与当前操作系统设置的编码...
  • s1070
  • s1070
  • 2016-08-24 17:44
  • 2998

linux解决中文乱码问题

  • 2014-12-09 15:18
  • 12KB
  • 下载

linux c++编程中vim与命令行中中文乱码问题的应对

刚接触linux下的编程,这里我用的系统版本是CentOS7,查询系统信息如下所示 [root@bogon etc]# uname -a Linux bogon 3.10.0-327.36.1.el...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)