wild¶
概要¶
设置读命令中用于扩展文件列表的通配符
语法¶
WILD [ECHO ON|OFF] [SINGLE char] [MULTIPLE char] [CONCATENATION chars]
输入¶
- ECHO ON
打开扩展文件表回显选项;当该选项打开时,会回显被通配符展开的文件列表
- ECHO OFF
关闭扩展文件表回显开关
- SINGLE char
修改用于匹配单个字符的通配符
- MULTIPLE char
修改用于匹配多个字符的通配符
- CONCATENATION chars
修改用于将联接字符串括起来的字符
缺省值¶
选项 |
UNIX |
VAX |
PRIME |
---|---|---|---|
echo |
on |
on |
on |
single |
|
|
|
multiple |
|
|
|
concatenation |
|
|
|
说明¶
很多现代操作系统都提供了通配符特性,也可以称为文件扩展。它是一个可以让你使用简短文件名以及简单的简写形式去指定一组文件的表示符号。SAC 在 read、readtable以及 readhdr 命令中使用通配符及一些扩展名,使用这些表示符号,你可以很容易地访问一组文件:
所有以字母
abc
开头的文件所有以
z
结尾的文件所有文件名中严格包含三个字母的文件
通配符代号有三个元素。对于不同的系统三个元素会有不同的缺省符。你可以使用这个命令改变通配符。多重匹配字符(*
)用于匹配字符串中任意字符串,包括空字符串。单个匹配符(?
)用于匹配任意单个字符。连接符号([
和 ]
)用于包围由逗号分隔的要匹配的字符串。在这个字符串中,可以包含单通配符或多通配符。
SAC 使用通配符完成文件名的扩展,通常有几个步骤:
如果标识目录部分存在的话将将其去掉,否则使用当前目录
做系统调用,以得到目录中所有文件的列表
如果在标识中是一个连接表,就用其他字符形成连接表中每个字符的新的标识,然后匹配它们到文件表中。如果没有连接表标识,则可简单匹配标识到文件表
去掉形成扩展文件表的所有重复的匹配
如果需要,回显扩展文件表
试着将扩展文件表读入内存
每个操作系统都使用一些不同的步骤在一个目录中存取文件。上面第一步的系统调用反映了这些不同。例如,在 UNIX 中以字母顺序显示文件名,但在 PRIME 或 VAX 上就不是这样。在 PRIME 目录中文件次序是随意的。这些不同反映在扩展文件表的文件次序上。你可以用各种不同的通配符和连接表进行实验,以确定扩展文件表中的文件次序是否重要。
下例将帮助你理解怎样使用这些通配符元素,一个有用的特征是 SAC 保存包含在连接表上的字符串,当你输入一个空表,则前面的表将被重复使用,这可以节省许多输入的操作。
示例¶
假定当前目录中包含如下次序的文件:
ABC DEF STA01E STA01N STA01Z STA02E STA02N STA02Z STA03Z
同样假定扩展文件设置回显,下面显示怎样使用各种通配符去将上面文件表的一部分读入内存:
SAC> READ S*
STA01E STA01N STA01Z STA02E STA02N STA02Z STA03Z
SAC> READ *Z
STA01Z STA02Z STA03Z
SAC> READ ???
ABC DEF
SAC> READ STA01[Z,N,E]
STA01Z STA01N STA01E
SAC> READ *[Z,N,E]
STA01Z STA02Z STA03Z STA01N STA02N STA01E STA02E
SAC> READ *1[Z,N,E] *2[ ]
STA01Z STA01N STA01E STA02Z STA02N STA02E
限制¶
在一个标识中只可以有一个连接串