我有一个音频文件夹。大多数是单个声音 - 或soundSprites - 而有些是几个soundSprites连接到精灵列表。这些spriteLists使用命名约定,并在文件名末尾添加_SL
。如何创建两个soundSprites和spriteLists数组?我尝试使用find
来排除精灵列表,如下所示:
soundSprites+=($(find . -maxdepth 1 ! -name "*_SL*"))
但是这会在我想避免的每个文件名之前添加./
。而不是弄清楚如何迭代数组并删除每个./
我只能假设有一个优雅的解决方案,我根本不知道。
非常感谢任何帮助。
答案 0 :(得分:3)
此处不要使用find
;对于包含shell将用于分词或路径名生成的字符的文件名,这将失败。相反,使用模式 Designed 来生成路径名。
shopt -s extglob
soundSprites+=( !(*_SL*) )
答案 1 :(得分:0)
根据这个问题的最佳答案提供的信息: How can I use inverse or negative wildcards when pattern matching in a unix/linux shell? 你可以这样做:
shopt extglob
soundSprites=(!(*_SL*))