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参数即可以完成对此控制字符的过滤。



CentOs 6.7 中文乱码解决

CentOS6.7 系统下中文编码设置,解决中文乱码,倒腾了我好久啊~醉了。明天还得准备上线,上线前的测试工作,我真的是有时间来倒腾自己的东西了。不过学习还是得学习,工作是工作。话说明天又是发工资的日...
  • sinat_22767969
  • sinat_22767969
  • 2016年10月31日 23:32
  • 3232

程序在Linux环境运行打印中文乱码

问题描述: 程序在开发环境下输出日志,中文正常显示。但是移交测试环境后,日志输出中的中文全部变成乱码。由于日志全部存储在数据库,日志打印由数据库取出后直接打印,所以排除了Tomcat编码问题。 问...
  • wangshuang1631
  • wangshuang1631
  • 2016年12月01日 15:18
  • 6948

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

来源:http://www.th7.cn/system/lin/201406/59466.shtml 为了写一篇关于linux命令的文章,懒得手动去输入,就想着把man命令的内容输出到.txt文...
  • gb4215287
  • gb4215287
  • 2016年05月31日 00:47
  • 1423

CentOS6.7下搭建Qt4.8.4开发环境

1. 解压Qt4.8.4    # tar zxvf qt-everywhere-commercial-src-4.8.4.tar.gz   修改~/.bashrc 文件,文件最后添加下面四行: QT...
  • unytech2012
  • unytech2012
  • 2016年05月26日 11:14
  • 1615

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

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

如何把man、info输出的帮助信息输出到文件中

man
  • baidu_25773927
  • baidu_25773927
  • 2016年02月22日 12:48
  • 457

linux中man文档的分类

  例如查wait这个命令, [root@jcwkyl /]# man -k wait 部分输出如下: wait                 (1p)  - await process compl...
  • jcwKyl
  • jcwKyl
  • 2009年07月25日 16:49
  • 2293

linux man指导手册更新

1、安装POSIX标准相关帮助文档:sudo apt-get install manpages-posix-dev2、其他的一些常用的指令:修改root密码 :sudo passwd root安装...
  • u010165367
  • u010165367
  • 2016年03月19日 15:01
  • 274

Linux将输出放到文件中

一,如何把命令运行的结果保存到文件当中?   这个问题太简单了,大家都知道,用 > 把输出转向就可以了   例子:   [lhd@hongdi ~]$ ls > ls.txt   [lhd@h...
  • u013238950
  • u013238950
  • 2016年06月16日 13:32
  • 8701

linux下自定义命令的man手册编写

简单说一下吧,今天用的感受: 其实目的就是我有一些自己写好的指令,然后这些指令放在了/usr/bin下面了,然后我想写一些帮助文档,然后通过man +cmd就可以查看。 做法: 1.创建...
  • tiancai1912
  • tiancai1912
  • 2016年04月22日 16:44
  • 626
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 解决man命令输出到文档打开乱码问题
举报原因:
原因补充:

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