man帮助文档打印

这里不讨论大家都知道的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搭建

上一篇:人人都是 Serverless 架构师 | 现代化 Web 应用开发实战


下一篇:C iOcp