學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > liunx強(qiáng)大的grep命令

liunx強(qiáng)大的grep命令

時(shí)間: 志藝942 分享

liunx強(qiáng)大的grep命令

  學(xué)習(xí)命令最好的方式就是模擬真實(shí)環(huán)境,寫出一些可能用到的命令組合,然后慢慢消化,起碼我就是這么過來的。一開始基本都是死記,然后再慢慢擴(kuò)展視野,時(shí)間長了,積累也就多了。接下來是小編為大家收集的liunx強(qiáng)大的grep命令,歡迎大家閱讀:

  liunx強(qiáng)大的grep命令

  grep是general regular expression parser 的縮寫,我們可以把它簡單理解為linux系統(tǒng)的一個(gè)搜索命令。接下來,直接上例子:

  1.在某個(gè)文件中搜索指定字符串

  在/etc/passwd文件中,搜索字符串guolei:

  1

  grep 'guolei' /etc/passwd

  注意,guolei的引號(hào)可以省略,但是如果搜索字符串中有空格或者你使用正則表達(dá)式,就需要加了。

  2.在多個(gè)文件中搜索指定字符串

  在當(dāng)前目錄中,搜索包含字符串guolei的文件:

  1

  grep -r guolei *

  注意:-r是recursive的縮寫,表示遞歸的搜索。

  在當(dāng)前目錄的.java文件中,搜索包含字符串guolei的文件:

  1

  grep -r guolei *.java

  有時(shí)候,我們的搜索結(jié)果可能比較多,我們可以結(jié)合less命令來展示結(jié)果:

  1

  grep -r guolei *.java | less

  或者搜索結(jié)果比較多,我們只需要列出文件名:

  1

  grep -rl guolei *.java

  還有一種需求比較常見,我們經(jīng)常想找到某一個(gè)目錄中,包含指定字符串的文件,注意上面的命令不可以遞歸查找。比如,我們想在當(dāng)前目錄下遞歸的查找所有.java文件中包含字符串guolei的文件:

  1

  find . -type f -name *.java -exec grep -il guolei {} \;

  3.搜索時(shí)忽略大小寫

  在搜索guolei時(shí),忽略大小寫:

  1

  grep -ri guolei *

  注意:-i是Ignore case的縮寫,表示忽略大小寫。

  4.搜索結(jié)果中列出行號(hào)

  在搜索結(jié)果中,列出字符串出現(xiàn)位置的行號(hào)碼:

  1

  grep -rn guolei *.java

  注意-n是number的縮寫,表示行號(hào)的意思。

  5.反向搜索

  實(shí)際開發(fā)中,還有一種情況比較常見,我們要在某個(gè)目錄下搜索不包含某個(gè)字符串的文件:

  1

  grep -riv guolei * | less

  注意:-v是reverse的縮寫,表示逆向的意思。上面的例子為在當(dāng)前目錄中搜索不包含guolei的文件。

  6.在管道中使用grep

  我們經(jīng)常還會(huì)在管道命令中使用grep,這個(gè)最常見。比如我們要搜索目前系統(tǒng)中的mysql進(jìn)程:

  1

  ps -ef | grep mysql

  或者列出當(dāng)前目錄以html結(jié)尾的文件:

  1

  ls | grep 'html$'

  
看了“liunx強(qiáng)大的grep命令”還想看:

1.Linux下如何使用grep命令搜索多個(gè)單詞

2.深入Linux grep指令的詳解

3.linux grep搜索命令的使用方法

4.Linux文本匹配命令grep與fgrep使用全解

5.grep用法詳解 grep與正則表達(dá)式

2991510