如何搜索包含特定单词的文件?

UAd*_*ter 40 command-line

如何搜索包含特定单词的文件?

Rin*_*ind 54

使用命令行,您有几个选项。我用得最多的三个是...

  1. locate {part_of_word}

    这假设您的 locate-database 是最新的,但您可以手动更新它: sudo updatedb

  2. grep正如 dr_willis 所解释的那样。一句话:在目录中搜索-R之后grep。例子:

    cd\
    grep -R {something_to_look_for} {where_to_look_in}
    
    Run Code Online (Sandbox Code Playgroud)
  3. find . -name '*{part_of_word}*' -print

哪里.是您身在何处的时刻,该目录*是一个通配符。

哦,你也可以结合这些。例子: locate {something}|grep {some_part_of_something}|more

如果我没记错的话:locate是最快的(假设您的数据库是最新的)并且find是最慢的。并且grep是其中最复杂但也是最通用的一种,因为您可以使用正则表达式。


小智 28

grep -R "什么" "哪里"

例子:

grep -R hello /home


cha*_*dan 6

您可以使用grep列出word给定中包含的文件directory

grep -Ril word directory
Run Code Online (Sandbox Code Playgroud)

这里:
*-R递归搜索子目录中的文件。
*-i忽略文本大小写
*-l显示文件名而不是文件内容部分。(注意:-L显示不包含该词的文件名)。

用于man grep获取所有选项

  • 只是让您知道:`-i` 执行不区分大小写的搜索。 (3认同)

dr_*_*lis 5

grep 命令通常用于此目的。

grep 模式文件名

grep 可以进行一些非常复杂的搜索。

willis@Cow:~$ grep --help
Usage: grep [OPTION]... PATTERN [FILE]...
Search for PATTERN in each FILE or standard input.
PATTERN is, by default, a basic regular expression (BRE).
Example: grep -i 'hello world' menu.h main.c
Run Code Online (Sandbox Code Playgroud)

  • 或者你可以做“rgrep word”。递归搜索每个文件和子目录中的“单词” (3认同)