find 使用 grep 过滤的命令输出

问题描述 投票:0回答:1

我使用 Linux 命令查找根文件夹内具有 .txt 和 .cmd 扩展名的所有文件,不包括位于名为“Sub Processes”和“SubProcesses”的子目录中的文件。我当前使用的命令是:

find . \( -name '*.txt' -o -name '*.cmd' \) ! \( -path '*/Sub Processes/*' -o -path '*/SubProcesses/*' \)

现在,我想改进此命令,以便仅包含字符串“starter”的 .txt 文件显示在输出中,同时仍包含所有 .cmd 文件。

我尝试在网上和通过人工智能引擎寻找解决方案,但没有成功。有没有办法将 -exec grep 'starter' 命令仅应用于 .txt 文件,确保它们是输出中唯一检查此字符串的文件?

注意:我不想在执行命令时打开新的 Bash 或 Shell 解释器。

linux shell grep find
1个回答
0
投票

您可以将第一个

-name
扩展到类似

\( -name '*starter*.txt' -o -name '*.cmd' \)

仅匹配包含

starter
并以
.txt
结尾的文件。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.