问题描述
如何搜索包含特定单词的文件?
最佳方法
使用命令行,您有几个选择。我最常使用的3个是…
-
locate {part_of_word}
这假定您的locate-database是最新的,但是您可以使用以下方式手动更新:sudo updatedb
-
grep
,如dr_willis所述。备注:grep
之后的-R
也在目录中搜索。例:cd\ grep -R {something_to_look_for} {where_to_look_in}
-
find . -name '*{part_of_word}*' -print
其中.
是您当前所在的目录,而*
是通配符。
哦,你也可以把它们结合起来。范例:locate {something}|grep {some_part_of_something}|more
如果我没记错的话:locate
是最快的(假设您的数据库是最新的),而find
是最慢的一个。 grep
是其中最复杂但也是用途最多的一种,因为您可以使用正则表达式。
次佳方法
grep -R “what” “where”
例:
grep -R hello /home
第三种方法
grep命令通常用于此目的。
grep PATTERN文件名
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
第四种方法
您可以使用grep
在给定的directory
中列出包含word
的文件:
grep -Ril word directory
此处:* -R
递归搜索子目录中的文件。 * -i
忽略文本大小写* -l
显示文件名而不是文件内容部分。 (注意:-L
显示的文件名不包含单词)。
使用man grep
获取所有选项