匹配所有文件,具有特定扩展名的文件除外

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了匹配所有文件,具有特定扩展名的文件除外相关的知识,希望对你有一定的参考价值。

我怎样才能修复./src/js/**/!(*.spec.js|*.test.js),所以它不会返回目录?我已经尝试过这样的./src/js/**/*.!(spec.js|test.js),但它匹配除目录之外的所有文件,与./src/js/**/*相同。 ./src/js/**/!(*.spec.js|*.test.js)的输出示例:

[ './src/js/__tests__',
  './src/js/__tests__/example.js',
  './src/js/example.js',
  './src/js/index.js' ]

期望的输出:

[ './src/js/__tests__/example.js',
  './src/js/example.js',
  './src/js/index.js' ]

glob版本7.1.3

答案

基本上你想要在你的情况下排除文件夹,这可以通过在最后添加(^/)来完成。

完整的glob应该是./src/js/**/!(*.spec.js|*.test.js|^/)

您可以验证微匹配语法here

更新:

使用npm模块glob,有一个名为nodir的选项。如果设置为true,则输出中不会有任何目录路径。

例:

var glob = require("glob")

glob("./src/js/**/!(*.spec.js|*.test.js)",  nodir: true , (er, files) => 
  console.log(er, files)
)

您可以找到有关所有可用选项in their section about options.的更多信息

以上是关于匹配所有文件,具有特定扩展名的文件除外的主要内容,如果未能解决你的问题,请参考以下文章

linux 上查找包含特定文本的所有文件

powershell 递归删除具有特定扩展名的所有文件

如何删除具有特定扩展名的所有文件

如何在Python中的目录中查找具有特定文件扩展名的所有文件

在 Unix 中查找所有具有特定扩展名的文件?

inotify 是不是可以让我监视所有具有特定扩展名的文件,无论它们在磁盘上的啥位置?