我想获得一个包含文件系统中给定文本的文件列表。此外,只应考虑位于由模式给出的directoy中的文件。
所以假设我的文件系统中有许多名为myDir
的目录,如下所示:
/usr
/myDir
/tmp
/myDir
/anotherDir
现在我想获取那些包含文本的目录中的所有文件。
基本上我需要执行以下步骤:
myDir
我到目前为止尝试的是find /etc /opt /tmp /usr /var -iname myDir -type d -exec ls -exec grep -l "SearchString" {} \;
然而这不起作用,因为find
的结果是我不能用作grep
的输入的目录。我假设我必须在find
和grep
之间做一步,但无法了解如何执行此操作。
答案 0 :(得分:1)
我想我得到了它,并会向你展示一个可以实现我需要的小脚本:
for i in $(find / -type d -iname myDir) do
for j in $(find "$i" -type f) do
grep "SearchString" "$j"
done
done
这将为我提供包含SearchString
的所有文件,这些文件位于名为myDir
的任何文件夹中。