标签: glob

为什么cmake文件GLOB邪恶?

CMake文档说明命令文件GLOB:

我们不建议使用GLOB从源树中收集源文件列表.如果在添加或删除源时没有更改CMakeLists.txt文件,则生成的构建系统无法知道何时请求CMake重新生成.

网络中的几个讨论线程第二个是通配源文件是邪恶的.

但是,为了使构建系统知道已添加或删除了一个源,这就足够了

touch CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

对?

然后,这比编辑CMakeLists.txt插入或删除源文件名更省力.也难以记住.所以我认为没有任何充分理由提出反对意见file GLOB.

这个论点有什么问题?

glob cmake

26
推荐指数
3
解决办法
1万
查看次数

如何测试字符串是否与Ruby中的glob匹配?

如果没有命中文件系统,是否可以看到glob "foo*"是否"food"在Ruby中匹配?

背景:我的一个脚本生成文件,我想单元测试其他脚本能够用它们当前的glob检测这些文件.

ruby string glob

25
推荐指数
1
解决办法
3558
查看次数

如何与CMake一起合并多个文件列表?

我有一个使用CMake构建的项目,需要将一些资源复制到目标文件夹.目前我使用此代码:

file(GLOB files "path/to/files/*")
foreach(file ${files})
    ADD_CUSTOM_COMMAND(
        TARGET MyProject
        POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy "${file}" "${CMAKE_BINARY_DIR}/Debug"
    )
endforeach()
Run Code Online (Sandbox Code Playgroud)

现在我想从不同的文件夹中复制更多文件.因此,我们希望从两个复制文件path/to/filespath/to/files2以二进制文件夹中的同一个地方.一种方法是复制上面的代码,但似乎没有必要复制冗长的自定义命令.

是否有一种简单的方法可以使用file(也可能是list命令)来连接两个GLOB列表?

glob file list concatenation cmake

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

忽略名称以'output'开头的文件

我有一个生成文本文件的程序output1.txt,output2.txt,output3.txt,等.我想让Git忽略这些文件.我无法阻止文本文件,因为我有一些不应忽略的文本文件.此外,文件是动态生成的("输出"后出现的数字没有限制),因此无法静态添加文件名.有人可以帮我这个吗?

PS.我已经检查过这个Make .gitignore忽略除了几个文件之外的所有内容,但是它引用了一组已知的文件.在我的情况下,它可能是一个很长的列表.

git glob substring

23
推荐指数
3
解决办法
7830
查看次数

有没有一种简单的方法可以为一个glob设置nullglob

在bash中,如果你这样做:

mkdir /tmp/empty
array=(/tmp/empty/*)
Run Code Online (Sandbox Code Playgroud)

你发现array现在有一个元素"/tmp/empty/*",而不是你想要的零.值得庆幸的是,可以使用打开nullglob shell选项来避免这种情况shopt -s nullglob

但是nullglob是全局的,当编辑现有的shell脚本时,可能会破坏一些东西(例如,是否有人检查退出代码ls foo*以检查是否存在以"foo"开头的文件?).因此,理想情况下,我只想在小范围内启用它 - 理想情况下,一个文件名扩展.您可以使用它再次关闭shopt -u nullglob但当然只有在之前禁用它时:

old_nullglob=$(shopt -p | grep 'nullglob$')
shopt -s nullglob
array=(/tmp/empty/*)
eval "$old_nullglob"
unset -v old_nullglob
Run Code Online (Sandbox Code Playgroud)

让我觉得必须有一个更好的方法.明显的"把它放在子shell中"不起作用,因为变量赋值与子shell一起消失.除了等待Austin组导入ksh93语法之外,还有吗?

bash glob shopt

21
推荐指数
3
解决办法
7142
查看次数

从glob表达式创建正则表达式

我编写用正则表达式解析文本的程序.应从用户处获得正则表达式.我希望使用glob语法进行用户输入,并在内部将glob字符串转换为正则表达式.例如:

"foo.? bar*" 
Run Code Online (Sandbox Code Playgroud)

应转换为

"^.*foo\.\w\bar\w+.*"
Run Code Online (Sandbox Code Playgroud)

不知何故,我需要从字符串中转义所有有意义的字符,然后我需要替换glob*和?具有适当的正则表达式语法的字符.这样做最方便的方法是什么?

regex search glob

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

在Windows上用C +/C中的Globbing

Windows中的C或C++中是否有流畅的方式?

例如,myprogram.exe*.txt向我的程序发送一个ARGV列表,其中包含... ARGV [1] = *.txt.

我希望能够有一个函数(让我们称之为readglob),它接受一个字符串并返回一个字符串向量,每个字符串包含一个文件名.

这样,如果a.txt b.txt c.txt我的目录中有文件而readglob得到一个参数*.txt,它将返回上面的文件列表.

//Prototype of this hypothetical function.
vector<string> readglob(string);
Run Code Online (Sandbox Code Playgroud)

这样的存在吗?

c c++ windows glob

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

按日期顺序搜索Glob?

我的python脚本中有这行代码.它搜索特定目录中的所有文件以查找*cycle*.log.

for searchedfile in glob.glob("*cycle*.log"):
Run Code Online (Sandbox Code Playgroud)

这非常有效,但是当我将脚本运行到网络位置时,它不会按顺序搜索它们,而是随机搜索.

有没有办法强制代码按日期顺序搜索?

这个问题已经被问到了php,但我不确定这些差异.

谢谢

python search glob date

20
推荐指数
3
解决办法
3万
查看次数

如何在C#中实现glob

我不知道在StackOverflow上发布你自己的问题答案是否合法,但我看到没有人问过这个问题.我去寻找一个C#Glob并没有找到一个,所以我写了一个其他人可能觉得有用的.

c# glob wildcard

19
推荐指数
1
解决办法
8897
查看次数

osx更改文件编码(iconv)递归

我知道我可以使用以下命令在OSX下转换单个文件编码:

iconv -f ISO-8859-1 -t UTF-8 myfilename.xxx > myfilename-utf8.xxx

我必须转换一堆具有特定扩展名的文件,所以我想将文件编码从ISO-8859-1转换为UTF-8,用于文件夹/ mydisk/myfolder中的所有*.ext文件

或许有人知道如何做到这一点的语法

谢谢

EKKE

macos shell encoding glob iconv

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

标签 统计

glob ×10

cmake ×2

search ×2

bash ×1

c ×1

c# ×1

c++ ×1

concatenation ×1

date ×1

encoding ×1

file ×1

git ×1

iconv ×1

list ×1

macos ×1

python ×1

regex ×1

ruby ×1

shell ×1

shopt ×1

string ×1

substring ×1

wildcard ×1

windows ×1