标签: 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 3.6 glob包含隐藏的文件和文件夹

我尝试遍历与某个扩展名匹配的所有文件,包括隐藏文件夹中的文件。到目前为止,我还没有找到使用iglob的方法。这适用于除以点开头的所有文件夹之外的所有文件夹:

import glob
for filename in glob.iglob('/path/**/*.ext', recursive=True):
    print(filename)
Run Code Online (Sandbox Code Playgroud)

我试图将点添加为可选字符无济于事。我真的很想使用glob而不是驻留在os.walk上

glob hidden-files python-3.x

6
推荐指数
4
解决办法
2014
查看次数

在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
查看次数