编者按:这个文件被选为MATLAB中心本周精选
基于通配符的文件和目录名称的模式匹配
字符。该函数类似于使用
Unix shell和Python glob。Glob函数,但它可以处理更多
类型的通配符。
[LIST, ISDIR] = glob(FILESPEC)
返回单元格数组LIST,其中包含匹配的文件或目录
由字符串FILESPEC指定的路径。通配符可以用于
Basenames和目录部分。如果文件规范包含
目录部分,然后这些将包括在LIST中。
ISDIR是一个布尔值,大小与LIST相同
目录列表。
可以使用以下通配符:
*匹配零个或多个字符
?匹配任何单个字符
[ab12]匹配一个指定的字符
[^ab12]不匹配任何指定字符
[a-z]匹配字符范围中的一个字符
{a,b,c}匹配任意一个字符串a,b或c
所有以上通配符都不匹配文件分隔符。
**匹配零个或多个字符,包括文件分隔符。
这可以用于匹配零个或多个目录部分
并递归列出匹配的名称。
GLOB和DIR的区别:
GLOB支持目万博1manbetx录通配符。
* GLOB返回FILESPEC的目录部分。
GLOB返回一个匹配名称的单元格数组。
GLOB不返回启动的隐藏文件和目录
用”。',除非在FILESPEC中明确指定。
* GLOB不返回'。”和“. .”unless explicitly specified
文件规范。
GLOB在目录名后面添加一个文件分隔符。
* GLOB不返回目录的内容
指定目录。若要返回目录的内容,
添加末尾'/*'。
* GLOB仅在尾随文件时返回目录名
指定分隔符。
*在Windows上GLOB是不区分大小写的,但它返回
在定义名称的情况下完全匹配名称
文件系统。UNC路径的host和sharename的大小写
驱动器号的情况将按
文件规范。
一团(文件规范,“ignorecase”)
在Unix上,默认GLOB是区分大小写的。选择“ignorecase”
FILESPEC匹配不区分大小写。在Windows上,总是使用GLOB
忽略了。这个选项可以缩写为'-i'。
例子:
一团*。列出当前目录下所有的。M文件。
Glob baz/*列出子目录“baz”下的所有文件和目录。
水珠b * / *。列出所有以子目录名开头的。M文件
“b”。这个名单将包括
匹配的子目录。
水珠? z *。列出所有包含第二个字符的。M文件
是“z”。
水珠巴兹。[ch]匹配bazc和bazh
水珠测试。(^ ch)匹配测试。A,而不是test.c或test.h
水珠演示。[a - c]匹配演示。演示。b, demo.c
水珠测试。{foo,酒吧,baz}匹配测试。foo,测试。酒吧,test.baz
*列出当前目录下所有隐藏文件,
扣除”。”和“. .”
Glob */列出所有子目录。
Glob **递归列出所有文件和目录,
从当前目录开始(当前目录
名称、隐藏文件和隐藏目录为
除外)。
一团* *。列出目录树中任意位置的所有M文件,
包括当前目录中的m文件。这
等于'**/*.m'。
Glob foo/**/递归列出所有目录,从in开始
目录“foo”。
一团* * /。Svn /列出目录树中所有的。Svn目录。
一团* * /。*/**递归列出隐藏目录中的所有文件
只有。
(r d) =一团(* *)
R (~d)获取目录树中的所有文件。
众所周知的局限:
当使用'**'时,符号链接目录或连接可能导致
一个无限循环。
参见dir
引用作为
彼得·范登·比格拉尔(2021)。展开文件和目录名称的通配符(//www.tianjin-qmedu.com/matlabcentral/fileexchange/40149-expand-wildcards-for-files-and-directory-names), MATLAB中央文件交换。检索.