Linux 下的文本查看及处理


cat 查看文本内的信息
cat file1 file 2...
shift+pageup/pagedown 手动翻屏

tac  内容反过来显示

more  支持翻页  空格向后 一瓶  回车 向后 一行  b向前 一屏 

more file1 file2 ...

less file1  file2

    space/b 向后/向前  翻一屏
    enter/k 向后/向前  翻一行
    /字符串  搜索字符串  n像一个  N上一个
    ?字符串
   
    -n  显示行号
    -E  显示特殊控制字符  $ 行结束符 换行符
    q键 退出


head file   显示文件头部 前几行  默认十行
    -n 数字
    -数字   显示前多少行
   
tail file  显示尾部多少行   默认十行
    -n 数字
    -数字   显示后多少行
    -f

   
            文本处理
文本过滤工具:
    grep(只支持基本)  全局搜索正则表达式   egrep(支持扩展)  fgrep(不支持正则表达式)
        RE 正则表达式  包含几个元字符
            两类:基本和扩展不能同时使用
                基本正则表达式:
                    ^行首锚定符:grep "^bin" /etc/shells    显示在行首出现这些字符的
                    $行尾锚定符:grep "bin$" /etc/shells    要求字符串必须出现在行?
                    .匹配任意单个字符:
                    *匹配其前的字符任意次(包括0次)
                    x\{m,n\} x至少出现m次 至多出现n次
                    []:指定范围内的任意字符
                    [^]:不匹配指定范围内的任意字符
                    \<    词首锚定符    \b
                    \>    词尾锚定符    \b
                    \(\)    \N     后向引用字符  引用第几个
                    .*    匹配任意长度的任意字符
                   
                   
                扩展正则表达式:
                    ^行首锚定符:grep "^bin" /etc/shells    显示在行首出现这些字符的
                    $行尾锚定符:grep "bin$" /etc/shells    要求字符串必须出现在行?
                    .匹配任意单个字符:
                    *匹配其前的字符任意次(包括0次)   
                    +匹配其前导字符一次或多次
                    ?匹配其前导字符一次或零次
                    |或者   
                    ()分组 把括号里的分为一组作为一个字符对待
                    {} ==\{\}(不可用了)
                    \(\) 不再支持
                                                                 
            
        grep '模式' 文件...
            --color
            -E 扩展正则表达式
            -v反向过滤
            -i 忽略大小写
            -A数字  匹配到的这一行的前N行
            -B数字    匹配到的这一行的后N行
            -C数字    匹配到的这一行的前后N行
            -o    表示进现实匹配到的字符串


cut:
    -d 指定分隔符 默认是空格
    -f 取第几段   1-3 一到三段 1, 3一和三段
   


文件排序:
    #sort [options] files  默认升序
        -r 实现降序
        -n 按数值大小排序
        -u 只显示一次重复的不予显示
            sort -u  == uniq  连续的相同的行 才被认为是重复行
    #uniq
        -u 只显示不重复过的行
        -d 只显示曾经重复过的行

    #wc 统计文件包含多少文字字母行的
        -l 只显示行数
        -w 只显示单词
        -c 只显示字符
    #diff 比较文件的不行
    #path 打补丁

 

sed  stream edite 流编辑器  行编辑器
#sed [option] {处理条件|处理规则}
#sed 'ADDR1,ADDR2/COMMAND' inpotfile
#sed '/PATTERN/PATTERN/COMMAND' intputfile  支持正则表达式对匹配到的行进行处理
#sed '/PATTERN,/PATTERN/PATTERN/COMMAND' intputfile  从第一次匹配到的行 开始到第二次匹配到的行结束
    -n 只显示匹配到的行
    -e 同时执行多个操作   -e '' -e '' -e '' -e'' ...
    -i 直接对源文件进行操作
    p  匹配到显示两边其他显示1遍
    d:delete    删除被模式匹配到的行
    a:append    在陪匹配到的行后面新增一行
    i:insert    在陪匹配到的行前面新增一行
        \n 换行符

相关内容