运维开发网

[unix shell笔记] - 文件名置换

运维开发网 https://www.qedev.com 2020-02-28 19:26 出处:51CTO 作者:happyland
  * 匹配文件名中的任何字符串,包括空字符串。 ? 匹配文件名中的任何单个字符。 [...] 匹配[ ]中所包含的任何字符。 [!...] 匹配[ ]中非感叹号!之后的字符。 使用* * 匹配文件名中的任何字符串,包括空字符串。 #ls -l |grep ^d        --只显示目录,因为是以d

 

* 匹配文件名中的任何字符串,包括空字符串。

? 匹配文件名中的任何单个字符。

[...] 匹配[ ]中所包含的任何字符。

[!...] 匹配[ ]中非感叹号!之后的字符。

使用*

* 匹配文件名中的任何字符串,包括空字符串。

#ls -l |grep ^d        --只显示目录,因为是以d开头的行

使用?

? 匹配文件名中的任何单个字符。匹配的字符数等于?的个数。

#ls ??R*

BAREAD

#ls conf.??.log

conf12.log conf.23.log conf25.log

使用[...]

[...] 可以用来匹配方括号[ ]中的任何一个字符。在这一方法中,还可以使用一个横杠-来连接两个字母或数字,以此来表示一个范围。

#ls [io]*    --列出以i或o开头的文件名

使用[!...]

[!...] 匹配[ ]中非感叹号!之后的字符。

下面的例子和刚才的有所不同,使用[!0-9] *来表示非数字开头的字符串,其中!是非的意思:

#ls log.[!0-9]*

log.sybase

为了列出所有以大写字母开头的文件名,可以用:

#ls [A-Z]*

为了列出所有以小写字母开头的文件名,可以用:

#ls [a-z]*

为了列出所有以数字开头的文件名,可以用:

#ls [0-9]*

为了列出所有以. 开头的文件名(隐含文件,例如.profile、.rhosts、.history等等),可以用:

# ls .*

 

0

精彩评论

暂无评论...
验证码 换一张
取 消