当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R Sys.glob 文件路径上的通配符扩展


R语言 Sys.glob 位于 base 包(package)。

说明

对文件路径进行通配符扩展(也称为‘globbing’)的函数。

用法

Sys.glob(paths, dirmark = FALSE)

参数

paths

相对或绝对文件路径模式的字符向量。缺失值将被忽略。

dirmark

逻辑:与尚未以 / 结尾的模式的目录匹配是否应该附加斜杠?可能并非所有平台都支持。

细节

这会扩展文件路径中的波浪号(请参阅 tilde expansion )和通配符。有关通配符扩展的准确详细信息,请参阅有关 glob 系统调用的系统文档。有一个 POSIX 1003.2 标准(请参阅 https://pubs.opengroup.org/onlinepubs/9699919799/functions/glob.html ),但某些操作系统会超出此标准。

所有系统都应解释*(匹配零个或多个字符)、?(匹配单个字符)和(可能)[(开始字符类或范围)。以分隔符结尾的路径的处理取决于系统。在兼容 POSIX-2008 的操作系统上,它们将(仅)匹配目录,但由于它们在 Windows 上不是有效的文件路径,因此它们不会匹配任何内容。 (早期的 POSIX 标准允许它们匹配文件。)

这些细节的其余部分是指示性的(并且基于 POSIX 标准)。

如果文件名开头为.这可能需要显式匹配:例如Sys.glob("*.RData")可能匹配也可能不匹配‘.RData' 但通常不会匹配 '.aa.RData’。请注意,这是依赖于平台的:例如在 Solaris 上Sys.glob("*.*")火柴 '.' 和 '..’。

[ 开始一个字符类。如果 [...] 中的第一个字符不是 ! ,则这是一个将单个字符与任何指定字符相匹配的字符类。该类不能为空,因此可以包含](只要它是第一个)。如果第一个字符是 ! ,则字符类匹配不属于指定字符的单个字符。字符类中的. 是否与文件名中的前导. 匹配为OS-dependent。

字符类可以包括 [A-Z] 等范围:通过将 - 作为字符包含在类中的第一个或最后一个。 (范围的解释应该是locale-specific,因此该示例在爱沙尼亚语言环境中不是一个好主意。)

可以通过在 ?*[ 前面加上反斜杠来删除它们的特殊含义(字符类内除外)。

匹配文件路径的字符向量。该顺序是系统特定的(但按照 paths 元素的顺序):通常按当前语言环境或字节 (ASCII) 顺序进行排序;但是,在 Windows 上,排序规则按照 Unicode 点的顺序排列。

目录错误通常会被忽略,因此匹配的是可访问的文件路径(但不一定是可访问的文件)。

例子


Sys.glob(file.path(R.home(), "library", "*", "R", "*.rdx"))

也可以看看

path.expand

Quotes 用于处理字符串中的反斜杠。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Wildcard Expansion on File Paths。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。