如何从目录中的文本文件中查找单词

如何从目录中的文本文件中查找单词

假设我有一个名为 _file 的目录,其中包含两个子目录,如 _1 和 _2,每个子目录中都有一些文本文件。我想在其中一个文本文件中搜索像 foo 这样的单词。我该怎么做?我想知道整个目录中哪些文本文件包含该单词?

答案1

如果您不想安装其他软件,只需grep在终端中使用即可。要递归搜索目录,可以使用选项-r(请参阅man grep详细信息)。您正在寻找的语法可能是:

grep -r "[STRING TO SEARCH FOR]" "[DIRECTORY TO SEARCH]"

因此,例如如果我想在“/tmp/testdir/”的所有子目录的所有文件中搜索字符串“asdf”,命令如下:

grep -r "asdf" "/tmp/testdir/"

引号不是必需的,但如果您的字符串或目录路径包含空格,则必须使用 \ 字符来屏蔽它们...

答案2

  1. 打开一个终端。
  2. ack-grep通过键入来安装sudo apt-get install ack-grep
  3. 更改为您想要搜索的目录,然后输入ack-grep foo。它会列出该目录下所有文件中的所有匹配项。

答案3

您可以使用grep带有-l标志的递归来仅打印文件的名称而不是匹配的行:

grep -Rl foo .

或者,你可以使用find

find . -type f -exec grep -l foo {} +

或者,你可以使用extglob正常的grep

shopt -s extglob
grep -l foo **/*

答案4

只需gnome-search-tool使用sudo apt-get install gnome-search-tool
dash 中的搜索“搜索文件”进行安装并启动它即可。

参见下图:

在此处输入图片描述

  1. 将“名称包含”部分留空。
  2. 选择您的文件夹。
  3. 展开“选择更多选项”部分并选择“包含文本”,然后按添加。
  4. 在此处输入您要搜索的文本,然后单击右下角的“查找”。

享受。

相关内容