文本處理工具及grep命令的理解與使用

1. 文本處理工具

  1.1 文件查看命令cat tac

    cat命令:連接文件并在標準輸出上面顯示出來

blob.png

 圖 1-1   cat幫助文檔   

    cat [option]…[file]…

        -E 顯示行結束符

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

        -A 顯示所有的控制符

        -b 非空行號

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

blob.png

       圖 1-2  cat命令使用 

    tac 也是文件查看命令,它與cat相反,cat是順序查看,從文件頭部開始逐行顯示內容,tac正好相反,它是從文件尾部開始逐行向上顯示,所以當用戶使用該命令查看文件時,最先顯示的是文件尾部的內容,文件頭部內容是最后顯示的。

  2.1  分頁查看文件more less

     more 分頁查看文件 

blob.png

圖 1-3  more幫助文檔

      more [option]…file…

       -d 顯示翻頁及退出提示

      less 一頁一頁地查看文件或stdin輸出blob.png

圖 1-4  less幫助文檔 

      less [option]…file…

      查看時可以使用 /文本 搜索 文本  n/N 跳到上一個或下一個匹配

    

   head 顯示文本前n行內容

      head [option]…file…

        -c n 指定獲取前n個字節

        -n n 指定獲取前n行

        -#  指定行數blob.png

圖 1-6  head命令使用

   tail 從文件尾部開始查看

     tail [option]…file… 

       -c n 指定獲取后n個字節

       -n n 指定獲取后n行

       -# 指定行數

       -f 跟蹤顯示文件新追加的內容

blob.png

圖 1-7  head命令使用

  3.1 按列抽取文本cut及合并文件paste

    cut [option]…file…

blob.png

圖 1-8  cut幫助文檔

       -d delimiter 指明分隔符,默認tab

       -f fields 字段

       -c 按字符切割

       –output-delimiter=string 指定輸出分隔符

  blob.png

                    圖 1-9  cut命令使用

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

      paste [option]…file…

        -d 指定分隔符

        -s 所有的行合成一行

blob.png

            圖 1-10  paste命令使用

  4.1 文本數據統計及排序

    4.1.1 wc命令可以統計計數單詞總數,行總數,字節總數和字符總數

blob.png

圖 1-11  wc幫助手冊

    wc 

     -l 只對行進行計數

     -w 只對單詞總數計數

     -c 只對字節總數計數

     -m 只對字符總數計數

blob.png

           圖 1-12  wc命令使用

  4.1.2 文本排序sort

    sort 把整理過的文本顯示在STDOUT,不改變原始文件

blob.png

圖 1-13  sort幫助文檔

      -r 執行反向整理

      -n 執行按數字大小整理

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

      -u 選項刪除輸出中的重復行

      -t c 選項使用c作為字段分隔符

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

blob.png

圖 1-14  sort命令使用

 4.1.3 uniq命令

     uniq 從輸入中刪除重復的前后相接的行

blob.png

圖 1-15  uniq幫助文檔

     uniq [option]…file…

       -c 顯示每行重復的次數

       -d 僅顯示重復的行

       -u 僅顯示不存重復的行

     常與sort命令一起配合使用

      sort file | uniq -c

blob.png

圖 1-16  uniq命令使用

2.文本處理三劍客之grep

    grep 文本過濾工具

       Global search REgular expression and Print out the line

       作用 文本搜索工具,根據用戶指定的"模式"對目標文本逐行進行匹配,打印匹配到的行。

       模式 有正則表達式字符及文本字符編寫成的過濾條件

blob.png

圖 2-1 grep幫助文檔

    grep [option] pattern [file]…

       –color=auto 對匹配到的文本著色顯示

       -v 顯示不能夠被pattern匹配到的行

       -i 忽略大小寫

       -n 顯示匹配的行號

       -c 統計匹配的行數

       -o 僅顯示匹配到的字符串

       -q 靜默模式

       -A n after 后n行

       -B n before 前n行

       -C n context 前n行后n行

       -e 實現多個選項之間的邏輯or關系

       -w 正行匹配整個單詞

       -E 使用ERE

blob.png

圖 2-2 grep命令使用

  egrep grep的擴充版本,優化了一些grep的語法,擴充了grep支持的功能

    egrep=grep -E

      egrep [option] pattern [file…]

3.正則表達式及擴展正則表達式

  REGEXP 有一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表示字面意義,而是控制或通配的功能。

  正則表達式分為:

     基本正則表達式:BRE

     擴展正則表達式:ERE     blob.png

 圖 3-1 正則表達式幫助文檔

   blob.png

                 圖 3-2 正則表達式

  正則表達式:

    位置錨定: 定位出現的位置

        ^ 行首錨定,用于模式的最左側

        $ 行尾錨定,用于模式的最右側

        ^PATTERN$ 用于模式匹配整行

            ^$ 空行  ^[[:space:]]*$ 空白行

        \<或\b 詞首錨定,用于單詞模式的最左側

        \>或\b 詞尾錨定,用于單詞模式的最右側

        \<PATTERN\> 匹配整個單詞

    分組:

        \(\)將一個或多個字符捆綁在一起,當作一個整體進行處理,如\(root\)\+

        分組括號中的模式匹配到的內容會被正則表達式引擎記錄與內部變量中,這些變量的命名方式為:\1,\2,\3…

        \1表示從左側起,第一個左括號以及與之匹配右括號之間的模式所匹配到的字符,引用前面分組括號中的模式所匹配到的字符而非模式本身。 

blob.png

           圖 3-3 正則表達式位置錨定

  擴展正則表達式

    次數匹配:

      *   匹配前面字符任意次

      ?  0次或1次

      +   1次或多次

     {m}  匹配m次

     {m,n} 至少m次,至多n次

    位置錨定

      ^     行首

      $     行尾

      \<,\b  詞首 

      \>,\b  詞尾

    分組

      ()

      向后引用 \1,\2…

    或者

      a|b

      C|cat C或cat

     (C|c)at Cat或cat

blob.png

             圖 3-3 egrep命令使用

原創文章,作者:Stupid_L,如若轉載,請注明出處:http://www.www58058.com/29738

(0)
Stupid_LStupid_L
上一篇 2016-08-07
下一篇 2016-08-07

相關推薦

  • BASH編程基礎之變量、條件判斷

    一、前言 在linux中,通常我們所指的腳本編程,指的是bash的腳本編程。 bash作為一種過程式的編程語言來說,它應該具備編程語言所應該具備的基本元素,即:變量,流程,函數,數組。今天我們介紹變量以及流程之一的條件判斷。 二、變量 1、初識變量 在編程語言中,編程語言有兩大種,強類型語言和弱類型語言。強類型語言中,要求變量的使用要嚴格符合定義,所有變量都…

    Linux干貨 2015-07-06
  • 網絡基礎

    1、OSI模型七層結構 應用層   為應用程序進程提供網絡服務   提供用戶身份驗證   表示層     確保接收系統可以讀出該數據     格式化數據     構建數據 &nbs…

    Linux干貨 2016-09-06
  • 關于 進程和性能監控

            Linux系統狀態的查看及管理工具:     pstree, ps, pidof, pgrep, top, htop, glance,pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup pstree命…

    系統運維 2016-09-11
  • httpd服務歸納:網絡服務基礎篇

    一、網絡傳輸基礎     1. 套接字:兩類          1) Unix Sock: 一種本地文件系統          2) Socket: IP port (I…

    Linux干貨 2015-05-04
  • 【26期】Linux第六周學習小總結

        時光匆匆,一周時光悠然而逝,帶給我們的只有知識的充實,和每日強大的自信心,學習的日益深入,慢慢的然我們的思緒和狀態帶回高中時光,吃飯上課睡覺三點一線的生活,枯燥中透露出稍微的晨曦,讓每個明天都充滿著期待,那我們的本周的學習中磁盤管理算是占了很大的比重,畢竟關于磁盤的知識很是難理解,那我就把本周的知識回顧溫習,同時分享給大家。 &n…

    2017-08-19
  • yum安裝 源碼安裝實例

     yum安裝 源碼安裝實例 §·源碼安裝 http 2.2.29實例 1     1.下載源碼包。 1     2.配置系統需要的編譯環境。 2     3 ./configure ; make  ;…

    Linux干貨 2016-08-24
欧美性久久久久