R:Sys.glob() 中的大括号扩展

发布于 2024-09-06 11:29:03 字数 240 浏览 9 评论 0原文

是否可以让 R 的 Sys.glob() 函数展开大括号?我的意思是类似于 /home/foo/{a,b}/bar.txt 的模式应该找到文件 /home/foo/a/bar.txt 和 /home/foo/b/bar.txt 如果它们都存在。默认情况下,R 不展开大括号。

在 glob(3) 中可以使用 GLOB_BRACE 标志进行大括号扩展。我猜 R 只是在幕后调用 glob(3) 所以我希望有某种方法,但我似乎找不到正确的调用......

Is it possible to have R's Sys.glob() function expand braces? What I mean is a pattern similar to /home/foo/{a,b}/bar.txt should find files /home/foo/a/bar.txt and /home/foo/b/bar.txt should they both exist. By default R does not expand the braces.

Brace expansion is possible in glob(3) with the GLOB_BRACE flag. I am guessing R is just calling glob(3) underneath the covers so I hope there is some way, but I can't seem to find the right invocation...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

别靠近我心 2024-09-13 11:29:03

bracer 包的 glob() 函数是 Sys.glob() 的包装器,它在执行大括号扩展后查找文件。在您的特定示例中 bracer::glob("/home/foo/{a,b}/bar.txt") 确实会找到文件 /home/foo/a/bar.txt/home/foo/b/bar.txt(如果它们都存在)。

The bracer package's glob() function is a wrapper around Sys.glob() that finds files after performing brace expansion. In your particular example bracer::glob("/home/foo/{a,b}/bar.txt") would indeed find files /home/foo/a/bar.txt and /home/foo/b/bar.txt if they should both exist.

戴着白色围巾的女孩 2024-09-13 11:29:03

我只是提到,您还可以使用 system (将 intern 参数设置为 TRUE)并调用您想要使用的任何系统命令(如果它没有直接在 Sys.*( ) 在 R 中。例如,这只是为 csv 文件调用 ls

x <- system("ls *.csv", intern=TRUE)

I just mention, that you could also use system (with the intern param set to TRUE) and call whatever system command you want to use if it isn't exposed directly in Sys.*() in R. For example, this just calls ls for csv files:

x <- system("ls *.csv", intern=TRUE)
你是我的挚爱i 2024-09-13 11:29:03

听起来很有用。

实际工作是由 R 源文件中的 src/main/sysutils.c 文件中的 do_glob() 子例程完成的——也许您可以从那里开始朝着修补?

GLOB_MARK 已经有条件地添加(在可用时),所以也许您可以跟踪该工作?

Sounds useful.

The actual work is done by the do_glob() subroutine in the file src/main/sysutils.c in the R sources -- maybe you can start there with work towards a patch?

GLOB_MARK is already added conditionally (on being available) so maybe you can shadow that work?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文