标签: glob

Win32 API用于进行通配符字符串匹配

我正在寻找一个通配符字符串匹配API(不是正则表达式匹配).我不能使用除Win32 API之外的任何东西.

c c++ winapi glob wildcard

9
推荐指数
4
解决办法
1万
查看次数

C++中的文件全局

Perl成语的C++方式是什么:

my @files = glob("file*.txt");
foreach my $file (@files) {

   # process $file
}
Run Code Online (Sandbox Code Playgroud)

c++ perl glob file

9
推荐指数
2
解决办法
3659
查看次数

bash filename globbing - 对以capital开头的文件进行操作

假设我有一个包含以下jpeg文件的文件夹:

adfjhu.jpg  Afgjo.jpg  
Bdfji.jpg   bkdfjhru.jpg
Cdfgj.jpg   cfgir.jpg
Ddfgjr.jpg  dfgjrr.jpg
Run Code Online (Sandbox Code Playgroud)

如何删除或列出以大写字母开头的文件?

这可以用组合来解决find,grepxargs.

但是在bash中可以使用普通的文件循环/模式匹配吗?

下面的cmd不起作用,因为(据我所知)LANG设置为en_US 和整理顺序.

$ ls [A-Z]*.jpg
Afgjo.jpg  Bdfji.jpg  bkdfjhru.jpg  Cdfgj.jpg  cfgir.jpg  Ddfgjr.jpg  dfgjrr.jpg
Run Code Online (Sandbox Code Playgroud)

这种作品

$ ls +(A|B|C|D)*.jpg
Afgjo.jpg  Bdfji.jpg  Cdfgj.jpg  Ddfgjr.jpg
Run Code Online (Sandbox Code Playgroud)

但我不想为所有字符AZ做这个通用解决方案!

这可能吗?

欢呼// Fredrik

bash glob

9
推荐指数
2
解决办法
2088
查看次数

在Bash中从命令行读取glob

如何从命令行读取Bash中的glob?我尝试了这个,它只获取了glob中的第一个文件:

#!/bin/bash
shopt -s nullglob
FILES=$1
for f in $FILES
do
  echo "Processing $f file..."
  echo $f
done
Run Code Online (Sandbox Code Playgroud)

假设我的脚本是script.sh.我想称之为sh script.sh /home/hss/* 4 gz (在哪里/home/hss/*,4并且gz是命令行参数).当我尝试上面的脚本时,它只读取第一个文件.有任何想法吗?

bash glob

9
推荐指数
2
解决办法
3213
查看次数

无法在Windows平台中使用Perl列出包含空间的目录

为了在Windows中列出pathes,我写了下面的Perl函数(在StrawBerry运行时环境下执行).

sub listpath
{
   my $path = shift;
   my @list = glob "$path/*";
   #my @list = <$path/*>;
   my @pathes = grep {  -d and $_ ne "." and $_ ne ".." } @list;
}
Run Code Online (Sandbox Code Playgroud)

但它无法正确解析包含空间的目录,例如:

当我发出以下代码时:listpath("e:/ test/test1/test11/test111/test1111/test11111 - Copy");

该函数返回一个包含两个元素的数组:

1:e:/ test/test1/test11/test111/test1111/test11111 2: -

我想知道glob是否可以解析空间目录.非常感谢.

perl glob

9
推荐指数
1
解决办法
3994
查看次数

Eclipse运行配置中的通配符扩展

有没有办法让Eclipse在运行配置参数中扩展通配符?我的类可以处理传递给的命令行参数main(String[] args).从普通shell(我的系统上的bash),它很简单:

$java MyClass file*.txt
Run Code Online (Sandbox Code Playgroud)

这将运行我的类,其中包含工作目录中的所有文件,这些文件以命令行参数的形式提供file并以结尾的形式.txt提供.

我想在eclipse中有相同的行为,但是当我进入file*.txt运行配置编辑器并运行程序时,通配符不会扩展.而不是文件列表,唯一识别的arg是文字字符串file*.txt.

这个线程让我相信它是可能的或者曾经是可能的(至少在Windows上 - 我运行的是Mac OS X 10.6.8),但那些人正在遇到相反的问题,即通配符被扩展,即使这种行为不是通缉.

在尝试解决这个问题时,我尝试使用不同的环境变量(即$ {string_prompt},更改工作目录,查看Eclipse首选项和文档,并搜索相关的短语,但没有任何工作.任何建议或相关链接信息将不胜感激.

java eclipse command-line glob wildcard

9
推荐指数
1
解决办法
1013
查看次数

Python,如何实现类似.gitignore行为的东西

我需要列出当前目录(.)中的所有文件(包括所有子目录),并排除一些文件,如.gitignore如何工作(http://git-scm.com/docs/gitignore)

使用fnmatch(https://docs.python.org/2/library/fnmatch.html),我将能够使用模式"过滤"文件

ignore_files = ['*.jpg', 'foo/', 'bar/hello*']
matches = []
for root, dirnames, filenames in os.walk('.'):
  for filename in fnmatch.filter(filenames, '*'):
      matches.append(os.path.join(root, filename))
Run Code Online (Sandbox Code Playgroud)

如何"过滤"并获取与"ignore_files"的一个或多个元素不匹配的所有文件?

谢谢!

python glob pattern-matching gitignore fnmatch

9
推荐指数
1
解决办法
1987
查看次数

Grunt用点作为文件来处理文件夹

当我尝试编译我的grunt文件并构建到我的dist文件夹中进行部署时,我在控制台中收到以下错误:

Running "rev:dist" (rev) task
dist/public/app/app.js >> 63decaf3.app.js
dist/public/app/vendor.js >> a09756ab.vendor.js
dist/public/app/app.css >> d2017fc8.app.css
Warning: Unable to read "dist/public/bower_components/animate.css" file (Error code: EISDIR).
Run Code Online (Sandbox Code Playgroud)

原因是我有一个名为animate.css的安装了bower组件.该库是安装在我当然bower_components文件夹,但匹配的字符串我在咕噜文件只查找文件具有的扩展.js,.css,等等.这是我的匹配字符串:

// Renames files for browser caching purposes
rev: {
  dist: {
    files: {
      src: [
        '<%= yeoman.dist %>/public/{,*/}*.js',
        '<%= yeoman.dist %>/public/{,*/}*.css',  // Offending line
        '<%= yeoman.dist %>/public/assets/images/{,*/}*.{png,jpg,jpeg,gif,webp,svg}',
        '<%= yeoman.dist %>/public/assets/fonts/*'
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是目录结构:

bower_components
  -> ...
  -> angular-ui-router
  -> animate.css  // Folder with the …
Run Code Online (Sandbox Code Playgroud)

javascript glob gruntjs animate.css yeoman

9
推荐指数
2
解决办法
1891
查看次数

将文件夹下的所有文件添加到CMake glob?

我刚看过这个:

CMake - 自动将文件夹中的所有文件添加到目标?

答案表明文件为glob,例如:

file(GLOB "*.h" "*.cpp")
Run Code Online (Sandbox Code Playgroud)

现在,如果我希望我的目标依赖于特定文件夹下某种类型的所有文件 - 可能在多个子文件夹中,该怎么办?我试过用

execute_process(COMMAND find src/baz/ -name "*.cpp" OUTPUT_VARIABLE BAR)
Run Code Online (Sandbox Code Playgroud)

然后

add_executable(foo ${BAR}
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:

找不到源文件:

  src/baz/some/file/here

src/baz/some/other_file/here

src/baz/some/other_file/here2
Run Code Online (Sandbox Code Playgroud)

(是的,有那个间距.)

我在这做错了什么?

glob cmake build-dependencies

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

在meld比较中仅包括特定的文件模式

我想比较目录与Meld,但只有特定的文件模式.例如,只有*.c;*.cc;*.icc;*.h文件.

Meld可以使用文件过滤器,但我只能使用它们来排除过滤特定的文件模式.我想这种方法对我没用.

可以应用包含过滤器吗?

我尝试了"双重否定"的概念:排除"除了"之外的所有*.c;*.cc;*.icc;*.h内容,实际上只包括那些模式.
我尝试使用文件过滤器,它可以很好地ls -d -- <my_filter>在命令行中列出"除了...之外的所有内容" (请参阅此内容).我认为这是任何过滤器在Meld中工作的必要条件(但不是充分条件).这些都不起作用:

  1. !(*.c|*.h|*.cc)
  2. !(*@(.c|.h|.cc))
  3. !(*.@(c|h|cc))

注意:我不是要使用任何类型的文本过滤器,因为我现在不关心文件的内容,而只关心文件名.

注意:我有bash

$ shopt extglob
extglob on
Run Code Online (Sandbox Code Playgroud)

filtering glob wildcard meld

9
推荐指数
0
解决办法
346
查看次数