You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选名称含abc的目录中不含Random123的iAmAFile文件

筛选符合条件的文件解决方案

现有文件列表

  • home/Modules/abc/iAmAFile
    文件内容:Random123
  • home/Modules/atoz/iAmAFile
    文件内容:Random123
  • home/Modules/23abc/iAmAFile/src
    文件内容:Random1
  • home/Modules/123abc/iAmAFile
    文件内容:Random3
  • home/Modules/123a/src/iAmAFile
    文件内容:Random1

期望输出结果

  • home/Modules/23abc/src/iAmAFile (内容为Random1)
  • home/Modules/123abc/iAmAFile (内容为Random3)

筛选规则

需同时满足以下两个条件:

  1. 文件内容不包含Random123
  2. 文件所在路径中存在名称含abc的目录

不符合规则的文件说明

  • home/Modules/123a/src/iAmAFile:内容不含Random123,但所有上层目录都不带abc
  • home/Modules/abc/iAmAFile、home/Modules/atoz/iAmAFile:文件内容包含Random123

尝试的命令及问题

执行以下命令:

ls -F Modules/*abc | grep -r -L --include="iAmAFile" "Random123"

输出结果多了不符合目录规则的home/Modules/123a/src/iAmAFile,需要调整命令。

正确命令

使用find命令可精准实现需求:

find home/Modules -type f -name "iAmAFile" -path "*abc*" ! -exec grep -q "Random123" {} \; -print

命令解析

  • home/Modules:指定搜索的根目录
  • -type f:仅查找文件,忽略目录
  • -name "iAmAFile":匹配文件名为iAmAFile的目标文件
  • -path "*abc*":筛选路径中包含abc的文件(确保所在目录含abc)
  • ! -exec grep -q "Random123" {} \;:排除内容包含Random123的文件(-q让grep静默执行,匹配到则返回真,!取反)
  • -print:输出所有符合条件的文件路径

内容的提问来源于stack exchange,提问作者gaMa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:01:14