shell腳本學習筆記之grep命令用法



***grep基本用法

   grep [選項] [模式] [文件..]


選項

 -c 只輸出匹配行的數量

 -i 搜索時忽略大小寫

 -h 查詢多文件時不顯示文件名

 -l 只搜索匹配的文件名,而不列出具體的匹配行

 -n 列出所有的匹配行,並顯示行號

 -s 不顯示不存在或無匹配文本的錯誤信息

 -v 顯示不包含匹配文本的所有行

 -w 匹配整詞

 -x 匹配整行

 -r 遞歸搜索,不僅所屬當前工作目錄,而且搜索子目錄

 -q 禁止儲存任何結果,以推遲狀態表示所屬是否成功

 -b 打印匹配行距文件的頭部的偏移量,以字節爲單位

 -o 與-b選項結合使用,打印匹配的詞距文件頭部的偏移量,以字節爲    單位

 -E 支持擴展正則表達式

 -F 不支持正則表達式,安裝字符串的字面意思進行匹配

模式

字符串

變量

正則表達式



1.grep搜索含有空格的文件或字符需要使用引號括起來

2.grep搜索多個文件時可以使用通配符




grep結合正則表達式


1.匹配行首

例子:

 grep ^a file  查找文本中以a爲行首的行


例子:grep -c ^$ file 查找文本中的空白行數


      grep -c ^[^$] file  查找文本中的非空白行數

 


2.設置大小寫

  grep -n [Cc] file 不區分大小寫的查找含c的行

  grep -n -i c  file  


3.匹配重複字符

  grep ^/..../ file  匹配以/開頭中間任意四個字符並以/結尾的共六個字符


  grep ^-*B  查看行首含有0個“-”或任意個“-”的並以B結尾的匹配


4.轉義符

  例子1:轉義“.”

  grep www\.example\.com  搜索含有www.example.com的行

 

  例子2:轉義“-”

  grep '\-{5\} file


5.POSIX字符

  [:upper:]   表示大寫字母[A-Z]

  [:lower:]   表示小寫字母[a-z] 

  [:digit:]   表示數字[0-9]

  [:alnum:]   表示大小寫字母和數字[0-9a-z-A-Z]

  [:space:]   表示空格或Tab鍵

  [:alpha:]   表示大小寫字母[A-Z-a-z]

  [:cntrl:]   表示ctrl鍵

  [:graph:]或[:print:]  表示ASCII嗎33-126之間的字符

  [:xdigit:]  表示16進制數字[0-9A-F-a-f]


例子:

   grep ^[[:upper:]] file  查找行首字符以大寫字母開頭的行

   POSIX字符需要用[]括起來

 

6.精確匹配

  grep "\<the\> 匹配含有單詞the的行

  必須帶引號


7.或字符(擴展正則表達式字符)

  grep -E "ou|se" 匹配帶有ou或se的行


8.egrep和fgrep 

  egrep "ou|se" file

  egrep "^-+b" file  匹配以一個"-"或多個“-”開頭並且後面含有b的行


fgrep ca file  只能匹配字符


   [0-9]* 。[A-Za-Z][A-Z-a-z]


   *.doc *.txt *.ppt *.docx *.pptx


grep -n -i chapter *.doc ..

grep -n [cC][hH][aA][pP][tT][eE][rR] *.doc ...



grep -r -c ^$ *

grep -c ^$ *


grep -E :$|[^[:alpha]] 

  


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