Rumah php教程 PHP开发 强大的grep命令

强大的grep命令

Dec 13, 2016 pm 02:46 PM

网上关于grep命令的解释一搜一大堆,基本都是把man命令大致翻译了一下,说实话,看完就忘!个人认为,学习命令最好的方式就是模拟真实环境,写出一些可能用到的命令组合,然后慢慢消化,起码我就是这么过来的。一开始基本都是死记,然后再慢慢扩展视野,时间长了,积累也就多了。好了,进入正题,谈谈牛逼的grep命令。 

grep是general regular expression parser 的缩写,我们可以把它简单理解为linux系统的一个搜索命令。接下来,直接上例子:

 

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

 

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

1

grep 'guolei' /etc/passwd

Salin selepas log masuk

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

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

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

1

grep -r guolei *

Salin selepas log masuk

注意:-r是recursive的缩写,表示递归的搜索。

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

1

grep -r guolei *.java

Salin selepas log masuk

有时候,我们的搜索结果可能比较多,我们可以结合less命令来展示结果

1

grep -r guolei *.java | less

Salin selepas log masuk

或者搜索结果比较多,我们只需要列出文件名:

1

grep -rl guolei *.java

Salin selepas log masuk

还有一种需求比较常见,我们经常想找到某一个目录中,包含指定字符串的文件,注意上面的命令不可以递归查找。比如,我们想在当前目录下递归的查找所有.java文件中包含字符串guolei的文件:

1

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

Salin selepas log masuk

3.搜索时忽略大小写

在搜索guolei时,忽略大小写:

1

grep -ri guolei *

Salin selepas log masuk

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

4.搜索结果中列出行号

在搜索结果中,列出字符串出现位置的行号码:

1

grep -rn guolei *.java

Salin selepas log masuk

注意-n是number的缩写,表示行号的意思。

5.反向搜索

实际开发中,还有一种情况比较常见,我们要在某个目录下搜索不包含某个字符串的文件:

1

grep -riv guolei * | less

Salin selepas log masuk

注意:-v是reverse的缩写,表示逆向的意思。上面的例子为在当前目录中搜索不包含guolei的文件。

6.在管道中使用grep

我们经常还会在管道命令中使用grep,这个最常见。比如我们要搜索目前系统中的mysql进程:

1

ps -ef | grep mysql

Salin selepas log masuk

或者列出当前目录以html结尾的文件:

1

ls | grep 'html$'

Salin selepas log masuk


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)