linux使用grep搜索文件里的内容,grep搜索文件名

  linux使用grep搜索文件里的内容,grep搜索文件名

  如果你想在几个文本文件中查找一个字符串,你可以使用grep命令。Grep在文本中搜索指定的字符串。假设您正在/usr/src/linux/Documentation目录中搜索一个带有字符串magic的文件:

  $ grep magic/usr/src/Linux/Documentation/*

  sysrq.txt:*如何启用神奇的sysrq密钥?

  sysrq.txt:*我如何使用神奇的sysrq密钥?

  文件sysrp.txt包含这个字符串,并讨论了SysRQ的功能。默认情况下,grep只搜索当前目录。如果这个目录下有很多子目录,grep会如下列出:grep: sound:是一个目录

  这可能会使grep的输出难以阅读。这里有两种解决方案:

  明确要求搜索子目录:grep -r

  或者忽略子目录:grep -d skip

  当然,如果期望输出很多,可以通过管道传输到less并读取:$ grep magic/usr/src/Linux/documentation/* LESS

  这样,你可以更方便地阅读。需要注意的一点是,必须提供文件过滤方法(如果搜索所有文件,请使用*)。如果忘记了,grep会一直等到程序中断。如果遇到这样的情况,按CTRL+c再试一次。

  以下是一些有趣的命令行参数:

  Grep -i模式文件:不区分大小写的搜索;默认情况下区分大小写

  Grep -l特征码文件:仅列出匹配的文件名。

  Grep -L特征码文件:列出不匹配的文件名。

  Grep -w模式文件:只匹配整个单词,不匹配字符串的一部分(例如“magic”而不是“magic”)

  Grep -C数字模式文件:匹配的上下文分别显示[数字]行。

  Grepattern1 pattern2files:显示与模式1或模式2匹配的行。

  Grepattern1files grepattern2:显示同时匹配模式1和模式2的行。

  以下是一些用于搜索的特殊符号:

  /和/分别标记单词的开头和结尾。

  例如:

  Grep man *会匹配蝙蝠侠,狂躁,男人等等,

  Grep /man *匹配 manic 和 man ,但不匹配 Batman

  Grep /man/只匹配 man ,不匹配 Batman 或 manic 等其他字符串

  $ :指行尾的匹配字符串。

  如果不习惯命令行参数,可以试试图形界面的grep,比如reXgrep这款软件提供了AND、OR、NOT等语法,以及漂亮的按钮。如果你只是需要更清晰的输出,试试fungrep。

  转自:http://www.mcuos.com/viewthread.php? tid=10 extra=page=4

linux使用grep搜索文件里的内容,grep搜索文件名