这里不讨论大家都知道的man重定向的一般常用方法(col处理方法)
$ man find | col -b > man_fine.txt

【跟着我的思路走】
假如您像我一样,直接使用如下命令导出find命令的man帮助文档页
$ man find > man_find.txt

在您使用vim查看导出文档man_find.txt时,您会发现,在文档中到处充斥了^H符号,而且是蓝颜色的(Linux下表示控制字符)。
到这里,您有没有一种冲动,想使用vim的方法处理一下这些特殊字符呢?

方法如下:
在底线模中输入如下内容,然后回车(千万要注意这里^H的输入方法:先键击Ctrl键不要放手,然后依次键击字母V和字符H,完成输入)
:%s/^H//g

如果您是按照我的这个思路操作的,到这一步处理完成之后,你会发现结果并不是我们想要的,在这个处理后的文档中n多n多的字母都是重复的!显然这样的处理方法是欠妥当的。

仔细观察一下这个结果和原始文档中的“乱码”特点,原来我们不仅仅要删除^H控制字符,同时还要删除紧跟在^H它前面的字母!

目标明确了,该如何操作呢?

对头,在vim中“.”表示匹配任意字母,所以

:%s/^H//g
修改为
:%s/.^H//g
搞定,完成任务,一个清晰的find命令的man帮助文档也展现在了我们vim的界面中。

请您也动手试验一下这个小方法,是不是很灵光。

【一句话总结】
使用vim处理man重定向帮助文件乱码问题
方法:
底线模:%s/.^H//g完成处理。

在  man ld.so>ld.so后

    vim打开ld.so后出现重叠乱码问题

    但是cat、less可以正常查看

    解决办法:  man ld.so|col -b >ld.so

    

col命令是一个标准输入文本过滤器,它从标注输入设备读取文本内容,并把内容显示到标注输出设备。在许多UNIX说明文件里,

都有RLF控制字符。当我们运用shell特殊字符>和>>,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col命令则

能有效滤除这些控制字符。

-b:过滤掉所有的控制字符,包括RLF(Reverse Line Feed)和HRLF(Halt RLF);

-f:滤掉RLF字符,但允许将字HRLF符呈现出来;

-x:以多个空格字符来表示跳格字符;

-l<缓冲区列数>:预设的内存缓冲区有128列,用户可以自行指定缓冲区的大小。

打印man帮助文档sh脚本(vi man.sh)

#!bin/bash

#我没写头文件,,,,我的天

man bash    |col -b >    bash.doc &&

man :        |col -b >    maohao.doc &&

man .        |col -b >    juhao.doc &&

man alias    |col -b >    alias.doc &&

man bg        |col -b >    bg.doc &&

man bind    |col -b >    bind.doc &&

man break    |col -b >    break.doc &&

man builtin    |col -b >    builtin.doc &&

man caller    |col -b >    caller.doc &&

man cd        |col -b >    cd.doc &&

man command    |col -b >    command.doc &&

man compgen    |col -b >    compgen.doc &&

man complete    |col -b >    complete.doc &&

man continue    |col -b >    continue.doc &&

man declare    |col -b >    declare.doc &&

man dirs    |col -b >    dirs.doc &&

man disown     |col -b >    disown.doc &&

man echo    |col -b >    echo.doc &&

man enable    |col -b >    enable.doc &&

man eval    |col -b >    eval.doc &&

man exec    |col -b >    exec.doc &&

man exit    |col -b >    exit.doc &&

man export    |col -b >    export.doc &&

man false    |col -b >    false.doc &&

man fc        |col -b >    fc.doc &&

man fg         |col -b >    fg.doc &&

man getopts    |col -b >    getopts.doc &&

man hash    |col -b >    hash.doc &&

man help    |col -b >    help.doc &&

man history    |col -b >    history.doc &&

man jobs    |col -b >    jobs.doc &&

man kill    |col -b >    kill.doc &&

man let        |col -b >    let.doc &&

man local    |col -b >    local.doc &&

man logout     |col -b >    logout.doc &&

man mapfile    |col -b >    mapfile.doc &&

man popd    |col -b >    popd.doc &&

man printf    |col -b >    printf.doc &&

man pushd    |col -b >    pushd.doc &&

man pwd        |col -b >    pwd.doc &&

man read    |col -b >    read.doc &&

man readonly    |col -b >    readonly.doc &&

man return    |col -b >    return.doc &&

man set        |col -b >    set.doc &&

man shift    |col -b >    shift.doc &&

man shopt    |col -b >    shopt.doc &&

man source    |col -b >    source.doc &&

man suspend    |col -b >    suspend.doc &&

man test    |col -b >    test.doc &&

man times    |col -b >    times.doc &&

man trap    |col -b >    trap.doc &&

man true    |col -b >    true.doc &&

man type    |col -b >    type.doc &&

man typeset    |col -b >    typeset.doc &&

man ulimit    |col -b >    ulimit.doc &&

man umask    |col -b >    umask.doc &&

man unalias    |col -b >    unalias.doc &&

man unset    |col -b >    unset.doc &&

man wait     |col -b >    wait.doc &&

#chmod 700 man.sh

#sh man.sh

脚本执行出的文件如何下载到Windows上呢,看下一篇centos6.5-vsftp搭建

man帮助文档打印的更多相关文章

  1. C#中5步完成word文档打印的方法

    在日常工作中,我们可能常常需要打印各种文件资料,比如word文档.对于编程员,应用程序中文档的打印是一项非常重要的功能,也一直是一个非常复杂的工作.特别是提到Web打印,这的确会很棘手.一般如果要想选 ...

  2. C# 对Excel文档打印时的页面设置

    1.对打印页面的朝向,页宽,页高进行设置 参考源码[1] using Excel = Microsoft.Office.Interop.Excel; Excel.Application tmpExce ...

  3. xps文档打印后winform界面文字丢失

    最近做的xps文档打印功能,绝对的一波三折,一开始开发的时候,始终用的是xps writer 虚拟打印机,测试的时候也是,一直没有发现问题,但是真正到用户使用的时候,接上正式打印机,打印时候没有问题, ...

  4. PDF文档打印太慢怎么办

    如下图,用Adobe Acrobat打开PDF文件,然后[高级]-打勾[作为图像打印]即可

  5. 文档打印 js print调用打印dom内容

    1.首先按目前研究 print可以打印dom 2.被设置overflow:hidden 的模块,打印时会被截掉. 3.被设置成 display:none 的dom 打印不会有样式 边框等. 4.如果需 ...

  6. php将用户信息提交到表单并且以txt文档打印出来

    1.分析: ====不推荐这种======== <?php function foo(){ // global $message; if(empty($_POST['username'])){ ...

  7. C# 设置Excel打印选项及打印excel文档

    C# 设置Excel打印选项及打印excel文档 打印Excel文档是一个很常见的操作,但有时候我们会碰到各种不同的打印需求,例如只打印一个Excel工作表的其中一部分,或打印时每页都有表头,或把工作 ...

  8. 一键批量打印EXCEL、WORD文档

    一键批量打印EXCEL.WORD文档,本方法也可以打印同一个文档N份,可以批量打印A3.A4文档,包括单.双面打印等.希望能帮到广大朋友.请大家注重原创版权,不得在未经许可的下转载.传播,或者用来对同 ...

  9. C# 打印PDF文档的10种方法

    操作PDF文档时,打印是常见的需求之一.针对不同的打印需求,可分多种情况来进行,如设置静默打印.指定打印页码范围和打印纸张大小.双面打印.黑白打印等等.经过测试,下面将对常见的几种PDF打印需求做一些 ...

随机推荐

  1. Android滑动列表(拖拽,左滑删除,右滑完成)功能实现(2)

    ItemTouchHelper类 之前我们实现了滑动列表的一些基本功能,为了实现更多的效果,我们来仔细看一下ItemTouchHelper中的类: ItemTouchHelper.SimpleCall ...

  2. ODM、JDM、OEM概念

    OEM (Original Equipment Manufacturer) - 原始设备制造商 委托生产,或者说“代工生产”,其含义是品牌厂商不直接制造产品,而是负责设计和开发新产品,控制销售“渠道” ...

  3. VMware ESXi 6.5 安装

    1.1下载esxi镜像 此处我使用的版本是:VMware-VMvisor-Installer-6.5.0-4564106.x86_64 1.2新建一个虚拟机,硬件兼容性处选择ESXI6.5 硬盘40g ...

  4. Pytorch多GPU训练

    Pytorch多GPU训练 临近放假, 服务器上的GPU好多空闲, 博主顺便研究了一下如何用多卡同时训练 原理 多卡训练的基本过程 首先把模型加载到一个主设备 把模型只读复制到多个设备 把大的batc ...

  5. linux的一些基础命令

    Linux是基于Unix的开源免费的操作系统,是部署服务器的很好选择. 系统:win10 工具:vm虚拟机+Xshell/CRT  虚拟机的系统为linux centos 7 首先看一下linux的基 ...

  6. centos docker 升级至最新稳定版--摘自官网

    亲测好使 删除老版本的docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ do ...

  7. emoji 表情: MySQL如何支持 emoji 表情

    https://www.cnblogs.com/jentary/p/6655471.html 修改数据库字符集: ALTER DATABASE database_name CHARACTER SET ...

  8. lvm快照备份数据库(Mysql5.7)

    备份的目的 能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方. 备份的分类 以操作过程中服务的可用性分: 冷备份:cold backup mysql服务关闭,mysq ...

  9. 你不知道的JS之作用域和闭包(一)什么是作用域?

    原文:你不知道的js系列 什么是作用域(Scope)? 作用域 是这样一组规则——它定义了如何存放变量,以及程序如何找到之前定义的变量. 编译器原理 JavaScript 通常被归类为动态语言或者解释 ...

  10. Servlet 监听器Listner

    定义:      专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动. Servlet 规范为每种事件监听器都定义了相应的接口,它用于监听 ...