Bash - 创建for循环以查找目录中的所有值

时间:2014-05-21 15:50:25

标签: bash

我正在尝试查找其中包含值的所有文件。该值在我创建的另一个文件中。

因此,包含其中所有值的文件名称为value.txt

我需要搜索所有值时,有多个目录包含.txt个文件

我正在尝试这样的事情

find -name "*.txt" | xargs grep value.txt

我想更改它,以便循环遍历所有目录并列出所有值。我需要创建一个for循环来执行此操作。

1 个答案:

答案 0 :(得分:4)

如何:

grep -l -r -f value.txt base_directory

说明:

  • -l - 只需打印我们找到匹配项的文件名称
  • -r - 递归到子目录。
  • -f value.txt - 从value.txt
  • 读取模式
  • base_directory - 在哪里寻找匹配的文件。

如果要搜索多个未按层次结构组织的目录:

for dir in some_dir1 some_other_dir some_dir/in/some_dir
do
  grep -l -r -f value.txt $dir
done