学习啦 > 学习电脑 > 操作系统 > Linux教程 > liunx强大的grep命令

liunx强大的grep命令

时间: 志艺942 分享

liunx强大的grep命令

  学习命令最好的方式就是模拟真实环境,写出一些可能用到的命令组合,然后慢慢消化,起码我就是这么过来的。一开始基本都是死记,然后再慢慢扩展视野,时间长了,积累也就多了。接下来是小编为大家收集的liunx强大的grep命令,欢迎大家阅读:

  liunx强大的grep命令

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

  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

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

  1

  grep -r guolei *.java | less

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

  1

  grep -rl guolei *.java

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

  1

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

  3.搜索时忽略大小写

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

  1

  grep -ri guolei *

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

  4.搜索结果中列出行号

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

  1

  grep -rn guolei *.java

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

  5.反向搜索

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

  1

  grep -riv guolei * | less

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

  6.在管道中使用grep

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

  1

  ps -ef | grep mysql

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

  1

  ls | grep 'html$'

  
看了“liunx强大的grep命令”还想看:

1.Linux下如何使用grep命令搜索多个单词

2.深入Linux grep指令的详解

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

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

5.grep用法详解 grep与正则表达式

2991510