當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。