grep命令的用法

grep命令的用法

grep global search regular expression(RE) and print out the line,全面搜索正則表達式並把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來.

 

參數:

1. -ANUM--after-context=NUM   除了列出符合行之外,並且列出後NUM行。

:   $ grep –A1 panda file  (file中搜尋有panda樣式的行,並顯示該行的後1)

 

2. -BNUM--before-context=NUM  -A NUM 相對,但這此參數是顯示除符合行之外並顯示在它之前的NUM行。如:    (file中搜尋有panda樣式的行,並顯示該行的前1)

$ grep -B 1 panda file

 

3 -C[NUM], -NUM, --context[=NUM]  列出符合行之外並列出上下各NUM行,默認值是2

 

:   (列出file中除包含panda樣式的行外並列出其上下2)(若要改變默認值,直接改變NUM即可)

$ grep -C[NUM] panda file

 

4 -c, --count  不顯示符合樣式行,只顯示符合的總行數。若再加上-v,--invert-match,參數顯示不符合的總行數

5-i--ignore-case 忽略大小寫差別

 

6-n--line-number 在匹配的行前面打印行號

 

7-v--revert-match  反檢索,只顯示不匹配的行

 

8、精確匹配:

例如在抽取字符串“ 48”,返回結果包含諸如484483等包含“48”的其他字符串,實際上應精確抽取只包含48的各行。

 

使用grep抽取精確匹配的一種有效方式是在抽取字符串前加\<,在抽取字符串後加\>。假定現在精確抽取48

方法如下:

#grep '\<48\>' filename

 

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

如:執行命令grep "root" /etc/password,因爲password文件不存在,所以在屏幕上輸出錯誤信息,若使用grep命令-s開關,可屏蔽錯誤信息

 

要用好grep這個工具,其實就是要寫好正則表達式,所以這裏不對grep的所有功能進行實例講解,只列幾個例子,講解一個正則表達式的寫法。

 

$ ls -l | grep  '^d'
通過管道過濾ls -l輸出的內容,只顯示以d開頭的行。

 

$ grep  'test'  d*
顯示所有以d開頭的文件中包含test的行。

 

$ grep  'test'  aa  bb  cc
顯示在aabbcc文件中匹配test的行。

 

$ grep  '[a-z]\{5,\}'  aa
顯示所有包含每個字符串至少有5個連續小寫字符的字符串的行。

 

$grep  ‘t[a|e]st’ filename

顯示包含testtast的所有行。

 

$grep  '\.$' filename

顯示以.爲結尾的所有行。


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