首页 理论教育 范围替换方法:实用LinuxShell编程

范围替换方法:实用LinuxShell编程

时间:2023-11-18 理论教育 版权反馈
【摘要】:单字符的替换除了用?中括号里面可以列出具体的字符,字符之间是或的关系。0-9]表示任意一个非数字的字符,[!p-z]*表示不以p到z之间的字母开头的文件名:注意,用中括号指定范围的时候,前面字符的序号不应大于后面的字符,例如[z-a]是不合理的:内置变量GLOBIGNORE的值会影响文件名的匹配。本来*代表目录下所有的文件:把GLOBIGNORE的值设置如下,意思是,名字以a和以b开头的文件,被忽略匹配:现在再运行ls*,名字以a和以b开头的文件不显示了:

范围替换方法:实用LinuxShell编程

字符的替换除了用?之外,还可以使用中括号。中括号里面可以列出具体的字符,字符之间是或的关系。例如,[amz]*表示名字以a,或以m,或以z开头的文件名:

978-7-111-48202-4-Chapter08-14.jpg

中括号里面还可以给出字符的范围,例如[a-z]表示任意一个小写字母,[A-Z]表示任意一个大写字母,[A-Za-z]表示任意一个字母,[b-mx-z]表示b到m、x到z之间的任意一个小写字母。ls[a-z]将显示名字为小写字母的单字符文件名:

978-7-111-48202-4-Chapter08-15.jpg

ls[a-k][a-k]将显示名字包含a到k之间的字母的双字符文件名:

978-7-111-48202-4-Chapter08-16.jpg

[a-k]*表示以a到k之间的字母开头的文件名:

978-7-111-48202-4-Chapter08-17.jpg

*[0-9]*表示包含一个阿拉伯数字的文件名:

978-7-111-48202-4-Chapter08-18.jpg

*[2-9]*表示包含一个2到9的阿拉伯数字的文件名:

978-7-111-48202-4-Chapter08-19.jpg

中括号里面的第一个字符为!时,表示取反匹配。例如,[!0-9]表示任意一个非数字的字符,[!a-z]表示任意一个非小写字母的字符,[!az]*表示不以字母a和z开头的文件名:(www.xing528.com)

978-7-111-48202-4-Chapter08-20.jpg

[!p-z]*表示不以p到z之间的字母开头的文件名:

978-7-111-48202-4-Chapter08-21.jpg

注意,用中括号指定范围的时候,前面字符的序号不应大于后面的字符,例如[z-a]是不合理的:

978-7-111-48202-4-Chapter08-22.jpg

内置变量GLOBIGNORE(见表4-3)的值会影响文件名的匹配。本来*代表目录下所有的文件:

978-7-111-48202-4-Chapter08-23.jpg

把GLOBIGNORE的值设置如下,意思是,名字以a和以b开头的文件,被忽略匹配:

978-7-111-48202-4-Chapter08-24.jpg

现在再运行ls*,名字以a和以b开头的文件不显示了:

978-7-111-48202-4-Chapter08-25.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈