Linux系統(tǒng)中g(shù)rep命令是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹 配的行打印出來(lái)。grep全稱是Global Regular Expression Printlinux命令大全,表示全局正則表達(dá)式版本,它的使用權(quán)限是所有用戶。
grep (global search regular expression(RE) and print out the line,全面搜索正則表達(dá)式并把行打印出來(lái))是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來(lái)。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴(kuò)展,支持更多的re元字符, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說(shuō),正則表達(dá)式中的元字符表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強(qiáng),可以通過(guò)-G、-E、-F命令行選項(xiàng)來(lái)使用egrep和fgrep的功能。
grep能夠快速的對(duì)文件進(jìn)行搜索linux命令大全,命令和參數(shù)都比較好理解:
grep [-acinv] [--color=auto] '搜尋字符串' filename
選項(xiàng)與參數(shù):
為了方便使用這個(gè)命令,先建立一個(gè)用來(lái)測(cè)試的文件,文件的內(nèi)容如下:
The Wrong Man
1956 film by Alfred Hitchcock
The Wrong Man is typical of most of his films. In The Wrong Man he appears only in silhouette, just before the credits at the beginning of the film, where he tells a darkened studio that the story is true.
搜索含有Man的句子:
root@ubuntu:~# grep -n Man grep_text.txt
1:The Wrong Man
3:The Wrong Man is typical of most of his films. In The Wrong Man he appears only in silhouette, just before the credits at the beginning of the film, where he tells a darkened studio that the story is true.
其中 -n 為顯示出有搜索到的句子在第幾行。其他的參數(shù)同樣可以使用如:
root@ubuntu:~# grep -n -i -v Man grep_text.txt
2:1956 film by Alfred Hitchcock
4:
可以對(duì)照上面對(duì)參數(shù)的說(shuō)明,-n -i -v ,其中-v是顯示搜索不到的行數(shù)。
在linux的命令中,有些命令顯示了大量的內(nèi)容,不容易查看可以通過(guò)grep過(guò)濾,得到想要的結(jié)果,如命令ps ax 顯示了大量的,使用grep過(guò)濾相關(guān)進(jìn)程。
root@ubuntu:~# ps ax | grep -n python
149: 5574 pts/0 Tl 0:00 /usr/bin/python /usr/local/bin/scrapy crawl iiSpider
150: 5589 pts/0 T 0:00 /usr/bin/python /usr/local/bin/scrapy crawl ccSpider
151: 5714 pts/0 T 0:00 /usr/bin/python /usr/local/bin/scrapy crawl ddSpider
python也是支持正則表達(dá)式的,至于正則表達(dá)式,跟其他的語(yǔ)言如java,c沒(méi)什么差別,這里說(shuō)說(shuō)如何使用正則表達(dá)式來(lái)進(jìn)行匹配:。有關(guān)正則表達(dá)式的語(yǔ)法還有最后一個(gè)元素,那就是正則表達(dá)式的屬性,它說(shuō)明的是高級(jí)模式匹配的規(guī)則.和其它正則表達(dá)式語(yǔ)法不同,屬性是在 / 符號(hào)之外說(shuō)明的.即它。@pattern 驗(yàn)證 string 對(duì)象是否符合正則表達(dá)式的規(guī)則,被注釋的元素符合制定的正則表達(dá)式,regexp:正則表達(dá)式 flags: 指定 pattern.flag 的數(shù)組,表示正則表達(dá)式的相關(guān)選項(xiàng)。
RE(正則表達(dá)式)
\ 忽略正則表達(dá)式中特殊字符的原有含義
查看帶數(shù)字的行:
root@ubuntu:~# grep -n [0-9] grep_text.txt
2:1956 film by Alfred Hitchcock
查看The開頭的行