***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]]