grep系的相關內容


grep系:
  grep ; egrep ; fgrep

  grep就是利用正則表達式進行全局搜索並將匹配的行顯示出來;

  格式:
  grep [OPTIIONS] PATTERN [FILE...]
    PATTERNN:過濾條件,是由正則表達式以及沒有特殊含義的文本字符組成的;

   經常使用選項:
   -i:忽略文本字符的大小寫;
   -v:反向匹配,最終顯示的是PATTERN所不能成功匹配的行;
   -c:計數,統計匹配PATTERN的全部行數;
   -o:關閉貪婪模式,僅顯示PATTERN所可以匹配的內容;
   -q:安靜模式,不輸出任何匹配的結果;
   --color[=WHEN]:將匹配的內容以特殊顏色高亮顯示;
         --color=auto
   -E:拓展的正則表達式;grep -E=egrop;
   -F:grep -F=fgrop
   -G:基本的正則表達式,egrop -G至關於grop;
   -P:使用pcre引擎;
   -A NUM:在顯示匹配PATTERN行的同時顯示其後面的num行;
   -B NUM:在顯示匹配PATTERN行的同時顯示其前面的num行;
   -C NUM:在顯示匹配PATTERN行的同時顯示其先後各num行;

   PATTERN:
     正則表達式元字符:
         基本的正則表達式元字符:
             GLOBBING——————簡化的正則表達式: [] ? *

             字符匹配:
                 .:匹配任意單個字符;
                 []:匹配指定範圍內的任意單個字符;
                 [^]:匹配指定範圍之外的任意單個字符;
                       [:lower:]
                       [:upper:]
                       [:alpha:]
                       [:digit:]
                       [:space:]
                       [:alnum:]
                       [:punct:]
                       [:blank:]
                       [:xdigit:]:全部的十六進制數字;
                       a-z:全部的小寫字母;
                       A-Z:全部的大寫字母;
                       0-9:標識全部的十進制數字;

             次數匹配:該類字符以前的那個字符能夠出現的次數;
                    *:其前面的字符能夠出現任意次(0,1或屢次)
                    \?:其前面的字符無關緊要(0,1)
                    \+:其前面的字符至少出現屢次(1或屢次)
                    \{m\}:其前面的字符必須出現m次;
                    \{m,n\}:其前面的字符至少出現m次,至多出現n次;
                    \{,n\}:其前面的字符至少出現0次,至多出現n次;
                    \{m,\}:其前面的字符其前面的字符至少出現m次,×××;

        在正則表達式中,表示任意長度字符的方式:.*

            位置錨定字符:

                行錨定:
                       行首錨定:^
                       行尾錨定:$
                字錨定:
                       字首錨定:\<
                       字尾錨定:\>

                對於正則表達式引擎來講,字是由非特殊字符組成的連續字符串;

            分組與引用字符:
                \(PATTERN\):將次PATTERN所匹配到的全部字符看成一個不可分割的總體來處理;
                在正則表達式引擎中,有一系列的內置變量,這些變量會保存全部分組內的字符信息,用於後向引用,這些變量分別依次是:
                \1,\2,\3,...

                patternl\(pattern2\)pattern3\(pattern4\(pattern5\)\)
                \1:pattern2
                \2:pattern4
                \3;pattern5
                \1:第一組小括號中的pattern匹配到的字符;
                \2:第二組小括號中的pattern匹配到的字符;
                ……


    grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
        默認狀況下,grep命令後面只容許有一個PATTERN
        若是想要在一次grep所搜索過程當中寫多個PATTERN,則須要使用-e選項;每一個-e選項後面只能有一個PATERN做爲參數;

        將所須要的PATTERN寫入到一個文件中,保證每行只有一個PATTERN:咱們就可使用-f FILE 選項來實現多PATTERN匹配;

    egrep:
        egrep [OPTION] PATTERN [FILE...]
            拓展的正則表達式元字符;
                字符匹配: .  [] [^]
                次數匹配:    *    ?    +    {m}    {m,n}    {m,}    {0,n}
                位置錨定:   ^    $    \<,\b    \>,\b
                分組和引用:     ()    \1, \2, \3,...或:|
                     其餘的文本處理命令:
      wc:
          wc [OPTION]... [FILE]...
              -l:只顯示行數
              -w:只顯示字數
              -c:只顯示字符數
    cut:remove sections from each line of files
          可以被cut命令修剪的文件,通常都是具備必定結構或格式的文本文檔;/etc/passwd
          cut OPTION... [FILE]...
              -d, --delimiter=DELIM:指定在實施修剪操做時所依賴的分隔符,默認是空白字符;
              -f, --fields=LIST:根據定義的分隔符來指定字段的編號;
                  地址定界使用方法:
                  #:選擇被指定的單個字段;
                  #,#:離散的多個被指定的單個字段;
                  #-#:連續的多個被指定的字段;
              --output-delimiter=STRING:指定輸出分隔符;
    awk:
          awk -F "DELIMITER" '[/PATTERN/]{print $1,$2,...$NF}' FILE...
              -F "DELIMITER":指定字段分隔符,默認爲空白字符;
              $1,$2,...,$NF:根據字段分隔符切割出來的文本片斷都存放在相應的內部變量中;

      sort:sort lines of text files,將文本文件按行繼續排序,默認排序規則是按照ASCII表中的字符順序進行,這個排序標準可修改;
          -r, --reverse:逆序排序
          -R, --random-sort:隨機排序,這種隨機算法是很是簡陋的,不適用於複雜環境;
          -u, --unique:重複出現的行,只保留一行;(連續且徹底相同的行叫重複),祛重;
          -n, --numeric-sort:以數字的數值大小進行排序;
          -t, --field-separator=SEP:指定字段分隔符;
          -k, --key=KEYDEF:指明根據哪一個關鍵字段進行排序,通常和-t同時使用;

      uniq:report or omit repeated lines
          -d, --repeated:只顯示重複出現的行,並且每一組重複行只顯示一行;
          -u, --unique:只顯示不重複的行;
          -c, --count:在每行之前綴的方式顯示重複行的重複次數;

      diff:compare files line by line
          同一文件的不一樣修改版本;打補丁;

      patch:apply changes to files
           patch [-R][-i patchfile] [file]git

相關文章
相關標籤/搜索