标签: glob

bash:反向(即NOT)shell通配符扩展?

有没有办法处理invers bash v4 shell扩展,即.处理所有文件不像通配符?我需要在这种情况下rm不是格式的所有文件,'Folder-???'并且想知道是否有更短的(即内置)方式然后做一个

for file in *
do
  [[ $i =~ \Folder-...\ ]] && rm '$i'
done
Run Code Online (Sandbox Code Playgroud)

环.(这个例子不起作用,顺便说一下......)

刚出来的bash学习好奇心......

bash glob

6
推荐指数
1
解决办法
3799
查看次数

PHP PHAR出现意外问题

经过一些测试/脚本/使用PHP 5.3 PHAR档案后,我发现了一些问题.

glob的

PHAR不适用于glob.既不作为包装器(http://www.php.net/manual/en/phar.using.stream.php#104320)也不作为函数调用.

在我的测试项目中,我不得不迭代PHAR中的文件,并通过全局等效的正则表达式过滤结果.

imagettfbbox

我不知道为什么,但imagettfbbox也不理解PHAR流包装器.

这里最简单的解决方案是通过copy()提取文件.(PHAR :: extractTo返回异常,没有堆栈跟踪或行号.)

还有其他惊喜,我应该期待吗?还有其他已知问题吗?它们是否随处可见?

php glob phar

6
推荐指数
1
解决办法
923
查看次数

使用Glob()时如何删除文件路径?

我只是想显示我的图像的名称,没有路径(../uploadedImages/)

<?php $images = glob("../uploadedImages/[kK]*.{jpg,png,gif,bmp}",GLOB_BRACE);   
foreach($images as $image) {echo "$image<br>"} ?>
Run Code Online (Sandbox Code Playgroud)

php glob

6
推荐指数
1
解决办法
8474
查看次数

在for循环中使用任意glob模式(带空格)

有没有办法可靠地使用存储在变量中的任意globbing模式?如果模式包含空格和元字符,我会遇到困难.这就是我的意思.如果我有一个存储在没有空格的变量中的模式,那么事情似乎工作正常:

<prompt> touch aa.{1,2,3} "a b".{1,2,3}
<prompt> p="aa.?"
<prompt> for f in ${p} ; do echo "|$f|" ; done
|aa.1|
|aa.2|
|aa.3|
<prompt> declare -a A=($p) ; for f in "${A[@]}" ; do echo "|$f|" ; done
|aa.1|
|aa.2|
|aa.3|
Run Code Online (Sandbox Code Playgroud)

但是,只要我在模式中抛出一个空格,事情就变得站不住脚了:

<prompt> p="a b.?"
<prompt> for f in ${p} ; do echo "|$f|" ; done
|a|
|b.?|
<prompt> declare -a A=($p) ; for f in "${A[@]}" ; do echo "|$f|" ; done
|a|
|b.?|
<prompt> for f in "${p}" ; …
Run Code Online (Sandbox Code Playgroud)

bash glob variable-expansion

6
推荐指数
1
解决办法
296
查看次数

使用getPathMatcher的Glob模式

从Oathy考试的"Kathy Sierra Bert Bates"一书中我发现了以下代码

public class FileTest {

    public static void matches(Path path, String glob){
        PathMatcher matcher = FileSystems.getDefault().getPathMatcher(glob);
        System.out.println(matcher.matches(path));
    }
    public static void main(String[] args) throws IOException {
        Path path = Paths.get("/com/java/One.java");
        matches(path, "glob:*.java");
        matches(path, "glob:**/*.java");
        matches(path, "glob:*");
        matches(path, "glob:**");

    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

false
true
false
true
Run Code Online (Sandbox Code Playgroud)

我无法清楚地理解输出.有人会解释我吗?让我知道我的例子是什么是跨越目录边界.谢谢洛基

java glob path

6
推荐指数
1
解决办法
2040
查看次数

PHP - 不区分大小写的文件搜索

我需要检查图像文件夹以添加一些产品图像.我的产品列表数组有SKU,如a48be25, A48be29, A48BE30我的图像文件夹中有图像a48BE25_1.jpg, a48bE29_2.JPG, A48BE30_1.jpg等等.

如您所见,图像和SKU是混合的.我需要以某种方式将SKU与文件名匹配.如果我使用glob("my/dir/{$SKU}*.jpg"),根据我的知识,它将不适用于区分大小写的操作系统.有没有办法强制glob以不区分大小写的方式搜索?

编辑:我不认为这线程的副本这一块.我这样说是因为在我的情况下我可以有很多可以混合使用的SKU.在提到的帖子中,OP只CSV在混合情况下使用了这个词,所以glob('my/dir/*.[cC][sS][vV]')在那里可以很好地工作.

php glob

6
推荐指数
1
解决办法
2009
查看次数

抛出新的TypeError('回调提供给同步glob')?

执行错误的详细信息:

#node app.js
throw new TypeError('callback provided to sync glob')
                ^
TypeError: callback provided to sync glob
at glob (C:\Users\z\Documents\node_modules\glob\glob.js:70:13)
at Object.module.exports.getGlobbedFiles (C:\Users\z\Documents\Server\Config\config.js:31:4)
at Object.<anonymous> (C:\Users\z\Documents\Server\app.js:102:10)
Run Code Online (Sandbox Code Playgroud)

我正在使用glob 5.0.14来启动meanjs app.

这是我的config.js:

    var _ = require('lodash'),
        glob = require('glob');

    module.exports.getGlobbedFiles = function(globPatterns, removeRoot) {
        var _this = this;        

        var urlRegex = new RegExp('^(?:[a-z]+:)?\/\/', 'i');        

        var output = [];
        if (_.isArray(globPatterns)) {
            globPatterns.forEach(function(globPattern) {
                output = _.union(output, _this.getGlobbedFiles(globPattern, removeRoot));
            });
        } else if (_.isString(globPatterns)) {
            if (urlRegex.test(globPatterns)) {
                output.push(globPatterns);
            } else {
31=> …
Run Code Online (Sandbox Code Playgroud)

javascript glob node.js

6
推荐指数
1
解决办法
2258
查看次数

查找具有部分字符串匹配的目录中的文件

我有一个目录,其中包含以下文件:

apple1.json.gz
apple2.json.gz
banana1.json.gz
melon1.json.gz
melon2.json.gz
Run Code Online (Sandbox Code Playgroud)

我希望能够找到所有的apple,bananamelon文件类型.

从这个SO答案我知道我可以通过文件类型找到:

import glob, os
os.chdir("/mydir")
for file in glob.glob("*.json.gz"):
    print(file)
Run Code Online (Sandbox Code Playgroud)

但是,就我而言,我无法通过文件名或文件类型进行匹配.而是一个部分文件名匹配(所有apple的等等)

在这个SO问题中,提出了这个解决方案:

[in] for file in glob.glob('/path/apple*.json.gz'):
    print file
Run Code Online (Sandbox Code Playgroud)

但是,这会返回零

[out]
     0
Run Code Online (Sandbox Code Playgroud)

python glob

6
推荐指数
1
解决办法
2万
查看次数

在python中递归搜索文件的最快方法是什么?

我需要通过递归搜索生成包含特定字符串的路径的文件列表.我这样做当前是这样的:

for i in iglob(starting_directory+'/**/*', recursive=True):
    if filemask in i.split('\\')[-1]: # ignore directories that contain the filemask
        filelist.append(i) 
Run Code Online (Sandbox Code Playgroud)

这样可行,但是当抓取一个大型目录树时,它的速度非常慢(约10分钟).我们在Windows上,因此不能选择对unix find命令进行外部调用.我的理解是glob比os.walk更快.

有更快的方法吗?

python search glob

6
推荐指数
1
解决办法
4561
查看次数

pathlib 的 `glob` 方法的顺序在运行之间是否一致?

Path('.').glob('*.ext')产生一致的结果排序(假设被通配的文件不会改变)?

似乎全局排序基于文件系统顺序(至少对于旧glob包而言)。是否会通过将文件添加到目录(不会包含在 glob 中)来更改pathlibglob顺序?即使没有向特定目录添加任何内容(例如,当系统上的其他地方进行其他大文件更改时),文件系统是否会更改此顺序?在几天的过程中?或者在所有这些情况下排序会保持一致吗?

只是为了澄清,我不能简单地转换为列表并排序,因为有太多的文件路径无法同时放入内存。我希望每次都能达到相同的顺序,因为我将进行一些 ML 培训,并希望将每个第 n 个文件留作验证数据。此培训将需要几天时间,这就是为什么我很想知道订单在文件系统上是否长时间保持稳定。

python glob pathlib

6
推荐指数
1
解决办法
191
查看次数

标签 统计

glob ×10

php ×3

python ×3

bash ×2

java ×1

javascript ×1

node.js ×1

path ×1

pathlib ×1

phar ×1

search ×1

variable-expansion ×1