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

liunx強大的grep命令

時間: 志藝942 分享

liunx強大的grep命令

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

  liunx強大的grep命令

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

  1.在某個文件中搜索指定字符串

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

  1

  grep 'guolei' /etc/passwd

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

  2.在多個文件中搜索指定字符串

  在當前目錄中,搜索包含字符串guolei的文件:

  1

  grep -r guolei *

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

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

  1

  grep -r guolei *.java

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

  1

  grep -r guolei *.java | less

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

  1

  grep -rl guolei *.java

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

  1

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

  3.搜索時忽略大小寫

  在搜索guolei時,忽略大小寫:

  1

  grep -ri guolei *

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

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

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

  1

  grep -rn guolei *.java

  注意-n是number的縮寫,表示行號的意思。

  5.反向搜索

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

  1

  grep -riv guolei * | less

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

  6.在管道中使用grep

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

  1

  ps -ef | grep mysql

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

  1

  ls | grep 'html$'

  
看了“liunx強大的grep命令”還想看:

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

2.深入Linux grep指令的詳解

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

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

5.grep用法詳解 grep與正則表達式

2991510