Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 教程 > Linux教程 > 正文

Linux基础知识十二使用通配符来操作文件

时间:2014-05-31 00:00 来源:未知 作者:www.51ou.com 阅读:

一、通配符的基本含义

bash 支持使用通配符(globbing)。掌握通配符,对于我们灵活运用bash 脚本有很大的帮助。 最常用的通配符有以下四种:

*:表示任意长度的任意字符;

?:表示任意的单个字符;

[]:表示在指定范围内的单个字符:[a-z];

[^]:脱字符,是取反的意思,即在指定范围以外的任意字符,如 [^0-9]表示除数字以外的一切字符。

下面举几个例子来演示如何使用通配符:

 

1.复制 /etc下所有以i 开头的文件:

# cp -v /etc/i* /tmp

# ls /tmp

 

2.复制 /etc 下所有以.conf 结尾的文件:

# cp -v /etc/*.conf /tmp

# ls /tmp

 

3.复制 /etc 下以i开头,以.conf结尾的文件:

# cp -v /etc/i*.conf /tmp

# ls /tmp

 

4.复制 /etc 下以i 开头,以.conf结尾,中间包含一个任意字符的文件:

  # cp -v /etc/i?.conf /tmp

# ls /tmp

 

5. 复制 /etc 下以i 开头,以.conf结尾,中间包含以a、b、c、d中任意一个字母开头的文件:

  # cp -v /etc/i[abcd]*.conf /tmp

  # ls /tmp

 

6.复制 /ect 下以一个非数字字符和一个数字组合命名的文件

      # cp -v /etc/[^0-9][0-9] /tmp

      # ls /tmp

 

7.复制 /etc 下以p开头,中间跟了任意字符,并以 d 结尾的文件

  # cp -vr /etc/p*d /tmp

      # ls /tmp

如果文件在 /etc的子目录中,则可以采用递归的方式复制

 

8.复制 /etc 下以p开头,后跟了4个任意字符,以d结尾的文件至 /tmp/a 中,若a不存在,则先创建a目录:

      # mkdir /tmp/a; cp -vr /etc/p????d /tmp/a

  # ls /tmp/a

注意:多条命令可以一起执行,中间用分号隔开。

 

9.复制 /etc 下以任意一个非数字开头,以数字结尾的文件至 /tmp/b中:

# mkdir /tmp/b; cp -vr /etc/[^0-9]*[0-9] /tmp/b

# ls /tmp/b

 

10.复制 /etc 下以非字母开头,后面跟了一个字母,及任意长度的字符文件至 /tmp/c 中:

# mkdir /tmp/c; cp -vr /etc/[^a-zA-Z][a-zA-Z]* /tmp/c

wKiom1NFhoahRwX0AAco5HKPC-E741.jpg

二、其他通配符

除上述四种常用的通配符以外,还有一些在实际工作中会经常用到的通配符,列举如下:

[:digit:] 表示所有的数字,相当于0-9

如果写成[[:digit:]], 则等同于[0-9], 表示从0-9 这9个数字中任选一个:

# ls /tmp/*[0-9]

# ls /tmp/*[[:digit:]]

wKioL1NFhqLBVGyxAADcQBus0wI151.jpg

 

[:lower:] 表示所有的小写字母

[:upper:] 表示所有的大写字母

注意: [a-z] 和 [A-Z] 其实是不区分大小写的,如下述例子可以看出差别:

# ls /etc/[a-z]*.conf

# ls /etc/[[:lower:]]*.conf

# ls /etc/[A-Z]*.conf

# ls /etc/[[upper:]]*.conf

wKiom1NFhu_TwCRcAAL-0fl0jjg680.jpg

 

[:alpha:] 表示所有的字母,如:

# ls /etc/p[[:alpha:]]*.conf

 

[:alnum:] 相当于[0-9a-z], 如:

# ls /etc/p[[:alnum:]]*.conf

 

[:space:] 相当于空白字符,如:

# touch /tmp/’a b’

# ls /tmp/[a-z][[:space:]][a-z]

 

[:punct:] 表示所有的标点符号,如

# touch /tmp/’a!b’

# ls /tmp/[[:alnum:]][:punct:][[:alnum:]]

wKioL1NFh0zzbCKfAAGfFgOaeOA111.jpg

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《Linux基础知识十二使用通配符来操作文件》技术文章,《Linux基础知识十二使用通配符来操作文件》详细使用和说明,有时《Linux基础知识十二使用通配符来操作文件》可能不完善、敬请谅解!如果《Linux基础知识十二使用通配符来操作文件》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片