文本處理工具詳解

一、cat命令

    cat:文件查看

    格式:cat [OPTION]...[FILE]..

    OPTION:

        -E:顯示行結束符$;

        -n: 對顯示出的每一行進行編號;

        -A:顯示所有控制符;

        -b:非空行編號;

        -s:壓縮連續的空行成一行;

        -T顯示製表符;

    tac:逆向顯示文件內容,與cat命令相反;

    rev:行文件內容逆向顯示;


            eg1:顯示所有控制符

                wKiom1mJX-fCO_8MAAAlpw965Nc540.png-wh_50

            eg2:顯示製表符

                wKioL1mJYMeTd9gHAAAhIZI-hYI344.png-wh_50

            eg3:顯示行號

                wKiom1mJYS6jkU3SAAAtlhTuE-8181.png-wh_50

            eg4:壓縮空行成一行

                wKiom1mJYmqSuRftAABNCSmkmGw884.png-wh_50

            eg5:非空行編號

                wKiom1mJYsGjkz0lAAArGb4EDCQ661.png-wh_50

            eg6:tac:逆向顯示文件內容

                wKioL1mJY9fx6JGFAAAyx0pZqbM896.png-wh_50

            eg7:逆向顯示行文件內容

                wKiom1mJZCqDPsSgAAAzuev59CA166.png-wh_50

                

二、more命令

    more:分頁查看文件內容

    格式:more [OPTIONS...] [FILE]...

    OPTIONS:

        -d:顯示翻頁及退出提示;

三、less命令

    less:分頁查看文件內容

        查看時有用的命令包括:

            /文本:搜索文本

            n:向下匹配

            N:向上匹配

四、head命令

    head:顯示文本前幾行內容(默認顯示前10行)

    格式:head [OPTION]... [FILE]...

    OPTION:

        -c #: 指定獲取前#字節

        -n #: 指定獲取前#行

        -#: 指定行數

五、tail命令

    tail:顯示文本後幾行內容(默認顯示後10行)

    格式:tail [OPTION]... [FILE]...

    OPTION:

        -c #: 指定獲取後#字節

        -n #: 指定獲取後#行

        -#:指定行數

        -f: 跟蹤顯示文件新追加的內容,常用日誌監控         

            eg:tail -n0 -f filename &:後臺運行,既能查看內容又能做別的事

六、cut命令

    cut:按列切割文本內容

    格式:cut [OPTION]... [FILE]...

    OPTION:

        -d DELIMITER: 指明分隔符,默認tab

        -f FILEDS:

            #: 第#個字段

            #,#[,#]:離散的多個字段,例如1,3,6

            #-#:連續的多個字段, 例如1-6 混合使用:1-3,7

        -c 按字符切割

        --output-delimiter=STRING指定輸出分隔符       

              eg1:
                [root@centos7 testdir]# cut -d: -f1 /etc/passwd
                    ##以冒號做分隔符,取文件第一列,也就是用戶名;
                    
            eg2:
                [root@centos7 testdir]# cut -d: -f1,3 /etc/passwd
                    ##以冒號做分隔符,取文件第一、第三列,我就是用戶名和UID;
                    
            eg3:
                [root@centos7 testdir]# cut -d: -f1,3,5-7 /etc/passwd
                    ###以冒號做分隔符,取用戶名、UID和shell類型;

            eg4:

                wKioL1mJdgWzl8Q_AAA6zr4vhXc619.png-wh_50

            eg5:

                wKiom1mJdr7CKX0IAABICKexy0I034.png-wh_50

七、paste命令

    paste:合併兩個文件同行號的列到一行

    格式:paste [OPTION]... [FILE]...

    OPTION:

        -d 分隔符:指定分隔符,默認用TAB

        -s : 所有行合成一行顯示

            paste f1 f2

            paste -s f1 f2


            eg1:

                wKiom1mJgHuQxzRZAABg1-p7FZs407.png-wh_50

            eg2:

                wKiom1mJgO6RPhxqAAAnm2i7G8k949.png-wh_50

            eg3:

                wKioL1mJgUmBliw1AAAlDY_7ID8150.png-wh_50

八、wc命令

    wc:字符統計(默認顯示行數、單詞數、字節數)

    格式:wc [OPTION]... [FILE]...

    OPTION:

        -l:統計行數

        -w:統計單詞個數

        -c:統計字節總數

        -m:統計字符總數

九、sort命令

    sort:文本排序(不改變原始文件)

    格式:sort [OPTION] file

    OPTION:

        -r 執行反方向(由上至下)整理 

        -n 執行按數字大小整理 

        -f 選項忽略(fold)字符串中的字符大小寫

        -u 選項(獨特,unique)刪除輸出中的重複行

        -t  c選項使用c做爲字段界定符

        -k  X選項按照使用c字符分隔的X列來整理能夠使用多次           

             eg1:
                [root@centos7 testdir]# sort -t: -k 3 -n /etc/passwd
                    ##以冒號做分隔符,取第三列按數字大小進行正向排序
                    
            eg2:
                [root@centos7 testdir]# sort -t: -k 3 -nr /etc/passwd
                    ##以冒號做分隔符,取第三列按數字大小進行逆向排序

十、uniq命令

    uniq命令:從輸入中刪除重複前後相接的行 

    格式:uniq [OPTION]... [FILE]...

    OPTION:

        -c: 顯示每行重複出現的次數

        -d: 僅顯示重複過的行

        -u: 僅顯示不曾重複的行

        注:連續且完全相同方爲重複 

   常和sort 命令一起配合使用:sort  userlist.txt  |  uniq-c


            eg1(vim /uniq.txt)

                wKiom1mJjtnT-zP-AAAXEjYsHUI085.png-wh_50

            

            eg2:uniq命令什麼選項都不加,僅顯示連續重複的行一次

                wKioL1mJjxLRDvXTAAAojUAmSjQ352.png-wh_50


            eg3:顯示每行重複出現的次數

                wKiom1mJj5vDRQfMAAArjzbs8i0634.png-wh_50


            eg4:僅顯示重複過的行

                wKioL1mJj8ywoHSQAAAfE66pveA304.png-wh_50


            eg5:僅顯示不曾重複過的行

                wKioL1mJkEOgE-VGAAAk6NLuang963.png-wh_50                

十一、比較文件

    diff:比較兩個文件之間的區別 

    patch:向文件打補丁

        -b:自動備份改變了的文件

       diff foo.conf-broken foo.conf-works
         5c5
        < use_widgets = no
        --
        > use_widgets = yes 
        註明第5行有區別(改變)

            eg1:

                wKioL1mJiQKwB776AAA-cq1KyvQ611.png-wh_50

            eg2:使用 -u 選項來輸出“統一的(unified)”diff格式文件,最適用於補丁文件。

                wKiom1mJiUGzF6jsAABqgzwc08g580.png-wh_50

            eg3:打補丁;刪除f2文件,使用patch來恢復f2文件,-b自動備份改變了的文件(f1),執行之後f2文件就恢復了,但是文件名不叫f2,而是f1;而原來的f1文件改名叫f1.orig;

                wKioL1mJi1Xwmk3zAAB8dF4xKbQ725.png-wh_50

                

    

  





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章