gpt4 book ai didi

linux - 编译没有特定子串的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:51 26 4
gpt4 key购买 nike

我是 bash 的新手,我想知道如何在某个目录中编译名称中不包含某些字符串的文件。所以说我有 gumbo.java jackson.java roosevelt.java roar.java 作为目录中的文件。如何编译名称中不包含 roar 或 gumbo 的文件?

最佳答案

在 bash 中,您可以像这样使用扩展的 glob 模式:

shopt -s extglob nullglob
printf '%s\n' !(roar|gumbo).java

这匹配除 roargumbo 之外的任何以 .java 结尾的内容。您可以将其视为 *.java,减去 roar.javagumbo.java

如果您对输出感到满意,请将 printf 替换为您用于编译的任何内容。

如果你想否定任何包含这些子字符串的东西,你可以添加一些星号:

printf '%s\n' !(*@(roar|gumbo)*).java

@() 匹配任何一个管道分隔的选项。和以前一样,整个事情都被 !() 否定了。

正如评论中所建议的那样,我还启用了 nullglob 以便空匹配项扩展为空。

关于linux - 编译没有特定子串的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45214728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com