8-4 文本處理工具

本節主要了解文本處理工具




文件查看命令:cat  tac  rev

    cat [OPTION]… [FILE]…

        -E:顯示行結束符$

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

        -A:顯示所有控制符

        -b:非空行編號

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

圖片1.png

tac:倒著顯示內容

rev:倒著顯示內容,同一行內也倒著

 

分頁查看文件:more

     more [OPTIONS…] FILE…

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

  less :一頁一頁地查看文件或STDIN 輸出

查看時有用的命令包括:

       /文本  搜索 文本

       n/N:跳到下一個 or  上一個匹配

 less 命令是man命令使用的分頁器

 

顯示文本前或后行內容

 head [OPTION]… [FILE]…

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

     -n #:指定獲取前#行

     -#:指定行數

圖片2.png

 tail [OPTION]… [FILE]…

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

      -n #:指定獲取后#行

      -#:

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

圖片3.png

 

文本內容切割:cut  

    cut [OPTION]… [FILE]…

       -d delimiter:  指明分隔符

        -f fileds:指明需要取出的字段

            #:第#個字段

            #,#,# :離散的多個字段,例如1,2,3

            #-#:連續的多個字段,  例如1-6

            混合使用:1-3,7,9,10-13

            -c 按字符切割

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

圖片4.png

 

 合并文件

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

      paste [OPTION]… [FILE]…

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

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

圖片5.png

 

字符統計:wc

wc [OPTION]…[FILE]…

   -l:統計行數

   -w:統計單詞個數

   -c:統計字符個數

   -m:只計字符總數

圖片6.png

其中1是行數,2是單詞個數,7是字符數

 

 

文本排序:sort

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

   sort [OPTION]… [FILE]…

    -r:逆序

    -n:以數字大小進行排序

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

    -u:刪除輸出中的重復的行

    -t c:使用c 做為字段界定符

    -k #:以指定字段為標準排序

圖片7.png

取第三列以數字大小排列

 

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

    uniq [OPTION] …[INPUT[OUTPUT]]

            -c:顯示每行重復的次數

            -d:僅顯示重復的行

            -u:僅顯示不重復的行

 

grep

   文本過濾( 模式:pattern) 工具;grep, egrep, fgrep (不支持正則表達式)

   作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行;

   模式:由正則表達式字符及文本字符所編寫的過濾條件

   grep [OPTIONS] PATTERN [FILE…]

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

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

  -i:忽略字符大小寫

  -n:顯示匹配的行號

  -c:統計匹配的行數

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

  -q:靜默模式,不輸出任何信息

  -A #after,匹配到的后#

  -B #before,匹配到的前#

  -C #context,匹配到的前后各#

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

       grep  -e cat -e dogfile

  -w :整行匹配整個單詞

  -E :使用ERE,支持使用擴展的正則表達式

圖片8.png

 

元字符:

      字符匹配:

          . :匹配任意單個字符

          []:匹配指定范圍內的任意單個字符

          [^]:匹配指定范圍外的任意單個字符

               表達方法:

                   [:alnum:]:表示所有字母和數字

                   [:alpha:]:表示所有的字母(不區分大小寫)

                   [:digit:]:表示所有的數字

                   [:lower:]:表示所有的小寫字母

                   [:upper:]:表示所有的大寫字母

                   [:space:]:表示所有的空白符號

                   [:punct:]:表示所有的標點符號

      次數匹配:用在要指定次數的字符后面,用于指定前面的字符要出現的次數

          *:匹配前面的字符任意次,包括0次 次

              默認正則表達式是工作在貪婪模式下,盡可能長的匹配

          .* :任意長度的任意字符

          \? :匹配其前面的字符0 1次,即可有可無

          \+ :匹配其前面的字符至少1

          \{m\} :匹配前面的字符m

          \{m,n\} :匹配前面的字符至少m 次,至多n次(小于等于,大于等于)

          \{0,n\} :匹配前面的字符至多n

          \{m,\} :匹配前面的字符至少m

     位置錨定:對特定位置進行定位

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

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

         ^PATTERN$:用于模式匹配整行

             ^$:空行,不包含有空格的行

             ^[[:space:]]*$:空白行,包含有空格的行

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

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

          \<PATTERN\>:匹配整個單詞

         分組:是指將一個或多個字符捆綁在一起,當做一個整體進行處理

               符號是: \(\):

                   如:\(xy\)*ab 表示xy這個整體可以出現無數次

圖片9.png

       查找出passwd文件中,r后跟任意小寫字母再跟t的字符

擴展正則表達式元字符:

     字符匹配:

         .:任意單個字符

         []:指定范圍內的單個字符

         [^]:不在指定范圍內的單個字符

次數匹配:

    *:任意次

    ?:0次或1

    +:至少1

    {m}:精確匹配m

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

    {m,}:至少m

    {0,n}:最多n

 分組:

     ():用括號括起來表示要引用的內容,不需要轉義

 或者:

      a|b:a或者b

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

(0)
DadiDadi
上一篇 2016-08-07 14:17
下一篇 2016-08-07 22:05

相關推薦

  • 五種開源協議的比較(BSD,Apache,GPL,LGPL,MIT)

    BSD開源協議(original BSD license、FreeBSD license、Original BSD license) BSD開源協議是一個給于使用者很大自由的協議?;旧鲜褂谜呖梢浴睘樗麨椤?可以自由的使用,修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發布。 但”為所欲為”的前提當你發布使用了BSD協議的代碼,或則以BSD協議代碼…

    Linux干貨 2017-01-30
  • shell腳本編程 4

    Shell腳本編程4 一、雜項知識整理 1、數組賦值方法: declare -a files files=(/var/log/*.log)通配所有文件也可 2、創建臨時文件: mktemp命令:創建的臨時文件可避免沖突 mktemp  NAME.XXXX(x至少要出現三個) -d 創建臨時目錄 –tmpdir=/DIR 指明臨時文件所存…

    Linux干貨 2016-08-24
  • 軟件編譯安裝小結

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1439073     本文主要針對 configure 和 cmake 做一個介紹以及我們重新配置編譯參數文件時,都需要做哪些清…

    Linux干貨 2016-08-15
  • Linux救援模式

        學習了Linux的啟動流程,為了加深理解,今天做了如下的實驗:刪除掉Linux系統在啟動過程中比較重要的幾個文件,查看啟動時出現的現象。加深對知識的理解。學習機器因為某些文件的缺失的修復方式。     一、刪除grub.conf    &nb…

    Linux干貨 2016-11-23
  • bash腳本編程實例

    bash腳本編程實例 1.寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄的shell(即用戶的shell不是/sbin/nologin),分別統計這兩類用戶的個數(通過字符串比較來實現) #!/bin/bash cat /etc/passwd|awk -F: ‘BEGIN{nologin=0;login=0}{if($NF==”/sbin/nol…

    Linux干貨 2017-08-28
  • 1017作業

    1 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正 ##先分析硬件時間不對還是系統時間不對,如果是系統時間不對: [root@localhost ~]# hwclock -w [root@localhost ~]#  ##如果是硬件時間不對: [root@localhost ~]#…

    Linux干貨 2016-10-18
欧美性久久久久