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



top重定向写入文件乱码问题

今天和帮一个同事解决文件读取错误的问题,纠结了一天。 同事用 top -n 1  > top.txt 命令C语言写的文件读取,文件打开、读取都没有问题,在终端显示也现实正常。但是编译成cgi后通过网...

linux各种中文乱码解决办法整理

远程登录服务器用vim在终端下编辑查看文件经常会遇见各种中文乱码问题。 做如下设置可基本解决vim中文乱码问题 首先查看系统对中文的支持 locale -a | grep zh_CN ...

Python多线程2:sched

sched模块提供了一个用于事件调度的类。 scheduler类定义 class sched.scheduler(timefunc=time.monotonic, delayfunc=time...

Python定时任务框架APScheduler

APScheduler是基于Quartz的一个Python定时任务框架,实现了Quartz的所有功能,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务。基...

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

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

三、Linux帮助文档man命令

手册通常被分为八个区段。 区段 说明 1 一般命令 2 系统调用 3 库函数,涵盖了C标准函数库 4 特殊文件(通常是/de...

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

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

linux解决中文乱码问题

  • 2014年12月09日 15:18
  • 12KB
  • 下载

linux vi 操作命令和linux 乱码问题的解决

进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 解决man命令输出到文档打开乱码问题
举报原因:
原因补充:

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