通配符介绍

这篇文章主要用来介绍通配符,由于自己经常和正则表达式搞混,所以特地写了这篇文章,来梳理一些。

通配符和正则的区别

通配符主要匹配文件名,而正则主要匹配文件中的内容;

常用的通配符介绍

主要有* 、?、[]这三种;

    • 匹配零个或多个字符
      如a*b,与之匹配的可以是aab,ab,a123b,abc.....
  1. ? 匹配任意单个字符
    如a?b,与之匹配的可以是aab,abb,a1b,a2b......
  2. [] 匹配指定范围内的任意单个字符
    如[wang] 即匹配w、a、n、g等任意一个字符;
  3. [^] 匹配指定范围以外的任意单个字符
    如[^wang] 排除列表中的所有字符,i与[]相反,即取反;
  4. 字符集的表示

    注意:对于下面的字符集,如果想要表示其中任意一个字符,需要在外面再加一个[]才可以;

[0-9]:     任意数字
[a-z]:     注意,这里不仅仅是小写字母,而是a,A ,b,B,c,C...z这样的顺序,即:小写、大写
[A-Z]:     注意,这里不仅仅表示大写字母,而是A,b,B,c,C...z,Z的 顺序
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:upper:]: 任意大写字母
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符,包含空格
[:punct:]:标点符号
更多内容,可以man 7 glob查看    

练习:

1. 显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录

(1)环境准备:

[[email protected] var ]#touch l2223343434a
[[email protected] var ]#touch l22233sddfd34a
[[email protected] var ]#touch l22dfdf34a

(2)方法一:

[[email protected] var ]#ls   /var/l*[[:digit:]]*[[:lower:]]
/var/l2223343434a  /var/l22233sddfd34a  /var/l22dfdf34a
或
[[email protected] var ]#ls -d /var/l*[0-9]*[[:lower:]]
/var/l2223343434a  /var/l22233sddfd34a  /var/l22dfdf34a

2. 显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录

(1)准备环境:

[[email protected] var ]#touch /etc/133rdfdf
[[email protected] var ]#touch /etc/123xin
[[email protected] var ]#touch /etc/123yuanhonli
[[email protected] var ]#touch /etc/abc_xn
[[email protected] var ]#touch /etc/1axc_xn

(2)解答:

[[email protected] var ]#ls /etc/[0-9]*[^0-9]
/etc/123xin  /etc/123yuanhonli  /etc/133rdfdf  /etc/1axc_xn
或
[[email protected] var ]#ls /etc/[0-9]*[^[:digit:]]
/etc/123xin  /etc/123yuanhonli  /etc/133rdfdf  /etc/1axc_xn

3. 显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录

(1准备环境:

[[email protected] var ]#touch /etc/1axc_xn
[[email protected] var ]#touch /etc/_222b
[[email protected] var ]#touch /etc/*b22b
[[email protected] var ]#touch /etc/xinb22b

(2)解答:

[[email protected] var ]#ls /etc/[^[:alpha:]][[:alpha:]]*
/etc/1axc_xn  /etc/*b22b

4. 显示/etc/目录下所有以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录

解答:

[[email protected] var ]#ls -d  /etc/rc[0-6]*                      ##注意添加-d选项,否则显示所有目录下的文件
/etc/rc0.d  /etc/rc1.d  /etc/rc2.d  /etc/rc3.d  /etc/rc4.d  /etc/rc5.d  /etc/rc6.d

5. 显示/etc目录下,所有以.d结尾的文件或目录

解答:

[[email protected] var ]#ls -d /etc/*.d
/etc/bash_completion.d  /etc/logrotate.d     /etc/rc0.d          /etc/rsyslog.d
/etc/chkconfig.d        /etc/lsb-release.d   /etc/rc1.d          /etc/rwtab.d
/etc/cron.d             /etc/makedev.d       /etc/rc2.d          /etc/sane.d
/etc/depmod.d           /etc/modprobe.d      /etc/rc3.d          /etc/setuptool.d
/etc/dnsmasq.d          /etc/oddjobd.conf.d  /etc/rc4.d          /etc/statetab.d
/etc/dracut.conf.d      /etc/pam.d           /etc/rc5.d          /etc/sudoers.d
/etc/init.d             /etc/popt.d          /etc/rc6.d          /etc/sysctl.d
/etc/latrace.d          /etc/prelink.conf.d  /etc/rc.d           /etc/xinetd.d
/etc/ld.so.conf.d       /etc/profile.d       /etc/request-key.d  /etc/yum.repos.d
[[email protected] var ]#

6. 显示/etc目录下,所有.conf结尾,且以m,n,r,p开头的文件或目录

解答:

[[email protected] var ]#ls -d /etc/[mnrp]*.conf
/etc/mke2fs.conf    /etc/ntp.conf                      /etc/prelink.conf      /etc/rsyslog.conf
/etc/mtools.conf    /etc/pbm2ppa.conf                  /etc/readahead.conf
/etc/nfsmount.conf  /etc/pm-utils-hd-apm-restore.conf  /etc/request-key.conf
/etc/nsswitch.conf  /etc/pnm2ppa.conf                  /etc/resolv.conf

7. 只显示/root下的隐藏文件和目录

[[email protected] var ]#ls -d /root/.*
/root/.              /root/.cache     /root/.gnote           /root/.local         /root/.thumbnails
/root/..             /root/.config    /root/.gnupg           /root/.nautilus      /root/.viminfo
/root/.abrt          /root/.cshrc     /root/.gtk-bookmarks   /root/.pulse         /root/.Xauthority
/root/.bash_history  /root/.dbus      /root/.gvfs            /root/.pulse-cookie
/root/.bash_logout   /root/.esd_auth  /root/.ICEauthority    /root/.ssh
/root/.bash_profile  /root/.gconf     /root/.icons           /root/.tcshrc
/root/.bashrc        /root/.gnome2    /root/.imsettings.log  /root/.themes
[[email protected] var ]#

8. 只显示/etc下的非隐藏目录

解答:

[[email protected] var ]#ls -d /etc/[^.]*
/etc/123xin                   /etc/host.conf                     /etc/prelink.cache
/etc/123yuanhonli             /etc/hosts                         /etc/prelink.conf
/etc/133rdfdf                 /etc/hosts.allow                   /etc/prelink.conf.d
/etc/1axc_xn                  /etc/hosts.deny                    /etc/printcap
/etc/_222b                    /etc/hp                            /etc/profile
/etc/abc_xn                   /etc/httpd                         /etc/profile.d
/etc/abrt                     /etc/idmapd.conf                   /etc/protocols

原文地址:http://blog.51cto.com/13668904/2160984

时间: 2024-11-07 19:12:15

通配符介绍的相关文章

四、Redis通配符介绍和命令缩写介绍

1.通配符介绍 1 ? 匹配一个字符 2 * 匹配任意个(包括 0 个)字符 3 [] 匹配括号间任一字符,可以使用 "-" 符号表示一个范围,如 a[b-d]匹配 "ab","ac","ad" 4 \x 匹配字符 x ,用于转义符号,如要匹配 "?" 就需要使用 \? (1). ? 号通配符:匹配一个字符 (2). * 号通配符:匹配 零 或 多个 字符 (3). [ ] 匹配一个范围 2."命

Linux Shell之通配符、转义字符、元字符

这里分别给大家讲解Linux Shell 通配符http://www.maiziedu.com/course/482/.转义字符.元字符. 一.linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在命令的"参数"里(它不用在命令名称里,也不用在操作符上).当shell在"参数"中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻

Linux Shell 通配符、转义字符、元字符、特殊字符

一.linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在命令的"参数"里(它不用在命令名称里,也不用在操作符上).当shell在"参数"中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行替换(路径扩展):否则就将该通配符作为一个普通字符传递给"命令",然后再由命令进

linux shell通配符、元字符、转义符

Linux Shell 通配符.元字符.转义符使用实例介绍 说到shell通配符(wildcard),大家在使用时候会经常用到.下面是一个实例: 1 1 2 3 4 [[email protected] ~/shell]$ ls a.txt  b.txt  c.old #2 1 2 3 4 [[email protected] ~/shell]$ ls *.txt a.txt  b.txt #3 1 2 [[email protected] ~/shell]$ ls d*.txt ls: 无法访

linux中的通配符、元字符、转义符

linux中的通配符.元字符.转义符 linux中的通配符元字符转义符 shell命令的构成 通配符 元字符meta 转义符 example reference shell命令的构成 每条linux命令中的每一个character都是下面两种之中的一个: - literal:普通纯文本 - 保留字:通配符.元字符.转义字符 通配符 通配符是由shell处理的(不是由所涉及到命令语句处理的.事实上我们在shell各个命令中也没有发现有这些通配符介绍), 它仅仅会出如今命令的"參数"里(它

linux shell转义符 元字符 通配符 特殊字符汇总

一.linux shell通配符(wildcard) 通配符是由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在命令的"参数"里(它不用在命令名称里,也不用在操作符上).当shell在"参数"中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行替换(路径扩展):否则就将该通配符作为一个普通字符传递给"命令",然后再由命令进

【ActiveMQ入门-10】ActiveMQ学习-通配符+异步接收

通配符介绍: 一般情况下,我们使用层次结构的方式来组织队列,比如A.B.C.D,这样便于归类和管理. 我们也可以使用通配符来配置或是操作多个队列. 通配符有三个: .  用来分隔路径: * 用来匹配路径中的一节 > 用来匹配任意节的路径 然而, 通配符中是为消费者服务的.==>即:消费者可以使用通配符来匹配目的地,而生产者不行. 如果你发送了这样的一个主题:" rugby.>.", 这个消息仅会发送到命名为"rugby.>."的主题,并不是所

Shell中的通配符

通配符的意义:通过指定的统配符号匹配相应的文件或者文件名称: 由shell处理的(不是由所涉及到命令语句处理的,其实我们在shell各个命令中也没有发现有这些通配符介绍), 它只会出现在 命令的"参数"里(它不用在 命令名称里, 也不用在 操作符上).当shell在"参数"中遇到了通配符时,shell会将其当作路径或文件名去在磁盘上搜寻可能的匹配:若符合要求的匹配存在,则进行代换(路径扩展):否则就将该通配符作为一个普通字符传递给“命令”,然后再由命令进行处理.总之

深入理解Java之泛型

1. Why ——引入泛型机制的原因 假如我们想要实现一个String数组,并且要求它可以动态改变大小,这时我们都会想到用ArrayList来聚合String对象.然而,过了一阵,我们想要实现一个大小可以改变的Date对象数组,这时我们当然希望能够重用之前写过的那个针对String对象的ArrayList实现. 在Java 5之前,ArrayList的实现大致如下: 1 public class ArrayList { 2 public Object get(int i) { ... } 3 p