我正在尝试查找其中包含值的所有文件。该值在我创建的另一个文件中。
因此,包含其中所有值的文件名称为value.txt
。
我需要搜索所有值时,有多个目录包含.txt
个文件
我正在尝试这样的事情
find -name "*.txt" | xargs grep value.txt
我想更改它,以便循环遍历所有目录并列出所有值。我需要创建一个for循环来执行此操作。
答案 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