shell编程之-文件名的匹配
shell提供了一套完整的字符匹配机制,这里说明以下文件名的匹配规则。
特殊字符:
* 匹配文件名中的任何字符串,包括空串
? 匹配文件名中的任意单个字符
[...] 匹配[]中所包含的任何字符
[!...] 匹配[]中非感叹号!之后的字符
1,使用*
该符号可以匹配文件名中的任何字符串,下面是一些实用的例子。
(1)ls app* #列出一app开头的所有的文件
(2)ls *.doc #列出后缀为.doc的所有文件
(3)cl*.doc #列出以cl开头且后缀为.doc的所有文件名
(4)ls -l | grep ^d #列出该目录中的所有是目录的文件
2,文件名中单个字符的匹配
(1)ls ??R* #列出第三个字符是R的所有文件名
(2)ls boot.???.* #列出以boot.开头的后加三个字符和一个.的所有文件名
3,文件名的或操作
(1)ls [io]* #列出所有以i或o字母开头的文件名
(2)ls [0-9]* #列出以0-9数字中任意一个开头的文件名
(3)ls [a-z]*
(4)ls [!0-9]* #列出开头不是0-9之间的任意数字的所有文件名
(5)ls *.[0-9] #列出所有以0-9之间任意一个数字结尾的文件名
shell提供了一套完整的字符匹配机制,这里说明以下文件名的匹配规则。
特殊字符:
* 匹配文件名中的任何字符串,包括空串
? 匹配文件名中的任意单个字符
[...] 匹配[]中所包含的任何字符
[!...] 匹配[]中非感叹号!之后的字符
1,使用*
该符号可以匹配文件名中的任何字符串,下面是一些实用的例子。
(1)ls app* #列出一app开头的所有的文件
(2)ls *.doc #列出后缀为.doc的所有文件
(3)cl*.doc #列出以cl开头且后缀为.doc的所有文件名
(4)ls -l | grep ^d #列出该目录中的所有是目录的文件
2,文件名中单个字符的匹配
(1)ls ??R* #列出第三个字符是R的所有文件名
(2)ls boot.???.* #列出以boot.开头的后加三个字符和一个.的所有文件名
3,文件名的或操作
(1)ls [io]* #列出所有以i或o字母开头的文件名
(2)ls [0-9]* #列出以0-9数字中任意一个开头的文件名
(3)ls [a-z]*
(4)ls [!0-9]* #列出开头不是0-9之间的任意数字的所有文件名
(5)ls *.[0-9] #列出所有以0-9之间任意一个数字结尾的文件名