获取文件夹中特定文件的目录并将其保存到变量中

获取文件夹中特定文件的目录并将其保存到变量中

这是我的问题。我想通过终端将特定文件的目录存储在变量中,但我的文件夹中有很多文件,假设其中一个是 test1432.config,另一个是 test1432-busybox.config,其他文件的扩展名不是 .config。所以我决定写

fst_directory="%s" %(co_directory[3:])+ "/*.config"

但如果我这样做,它也会占用 test1432-busybox.config,不是吗?我该怎么做?提前致谢

编辑

两个文件之间的唯一区别是 busybox 部分。我的意思是 fileName-busybox.config 和 fileName.config。我总是想选择 fileName.config

编辑2

因为没有人分享解决方案。我创建了自己的解决方案。在这种情况下,busybox 对我来说不是必需的文件。所以我决定删除它们,然后我可以轻松选择真正的文件。如果文件很重要,而您无法删除它。您可以将其移动到其他地方,然后在操作后移回。

答案1

假设您有两个文件,一个要列出/使用,另一个要忽略,其中要忽略的-文件名称中包含以下内容:

 ls *.config | grep -v '-'

来自有关 grep -v 选项的手册页:

      -v, --invert-match
          Invert  the  sense  of matching, to select non-matching lines.  (-v is specified by
          POSIX.)

这基本上意味着列出所有以 结尾的文件.config,通过管道传递给 grep 并排除包含-

或者可以更好地控制选择的内容:

 ls | grep ".*[^-busybox].config"

意思是:

列出目录中的所有文件,将它们发送到 grep,并使用正则表达式过滤它们以包含*所有内容,但不包括括号中的文件[^-busybox],以.config

[^]排除。

相关内容