歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux編程中如何使用grep命令

Linux編程中如何使用grep命令

日期:2017/3/3 15:58:38   编辑:關於Linux

grep (global search regular 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”,返回結果包含諸如484和483等包含“48”的其他字符串,實際上應精確抽取只包含48的各行。

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

方法如下:

#grep '48\>' filename

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

URL:http://www.bianceng.cn/OS/Linux/201410/45915.htm

如:執行命令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

顯示在aa,bb,cc文件中匹配test的行。

$ grep '[a-z]\{5,\}' aa

顯示所有包含每個字符串至少有5個連續小寫字符的字符串的行。

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

顯示包含test或tast的所有行。

$grep '\.$' filename

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

Copyright © Linux教程網 All Rights Reserved