目录-
- 主页/模块/abc/iAmAFile
iAMA文件的内容:* 随机123 *
- 主页/模块/atoz/iAmAFile
iAMA文件的内容:* 随机123 *
- 主页/模块/23 abc/iAmAFile/源文件
iAMA文件的内容:* 随机1 *
- 主页/模块/123 abc/iAmAFile
iAMA文件的内容:* 随机3 *
- 主页/模块/123 a/源代码/iAMAFile
iAMA文件的内容:* 随机1 *
我要查找的输出为:
- 主页/模块/23 abc/src/iAmAFile(内容为 * 随机1 *)
- home/模块/123 abc/iAmAFile(内容为 * 随机3 *)
说明:这些文件不包含 * Random 123 *,并且是名称中带有abc的目录的子目录。
home/Modules/123 a/src/iAmAFile不符合条件,尽管它在子文件iAmAFile中没有 * Random 123 *,但父目录或前父目录的名称不符合条件,因为它不包含 abc。
其他两个不符合iAmAFile的条件,具有字符串 * Random 123 *
我想出的命令是:
ls -F Modules/*abc | grep -r -L --include="iAmAFile" "Random123"
其给出输出,
- 主页/模块/23 abc/源代码/iAMAFile
(内容为 * 随机1 *)
- 主页/模块/123 abc/iAmAFile**
(内容为 * 随机3 *)
- 请输入您的当前位置。
(内容为 * 随机1 *)
它包括与命名标准不匹配的目录。
1条答案
按热度按时间webghufk1#
建议在
path
上组合使用负grep
(grep -v
)和正find
滤波器。说明
find . -type f -path "*abc*"
列出路径中包含
abc
的目录下的所有文件。grep -L "Random123" <files list>
列出所有不包含
Random123
字符串的文件。来自<files list>
。