Linux编程语言glob函数,Linux_bash的特性之glob

什么是glob?glob是文件名通配机制,使文件管理更为方便、简洁、快速;将来管理文件时,可以执行一次性操作,这种机制能快速提升工作任务!

要想实现文件名通配机制,需要用到匹配中的元字符。基于元字符可编写匹配模式(pattern)

glob中的元字符如下,也是大家经常用到的一些字符。

1、*:匹配任意长度的任意字符;

例:p*  以小写p开头的所有文件(注意区分大小写)

pa*  以小写pa开头的所有文件

*p*a  字母p前面有多个或一个任意字符,字母p和a之间有多个或一个任意字符。例:qw1p23rta、wp0a、ppaa……等等

2、?:匹配任意单个字符;

例:p?  以p开头,后面可以跟一个任意字符。

如:pa、po、p1就是正确的;反之paa、p2w就不行;

p?a  以p开头,小a结尾,中间可以是任意一个单个字符;

如:p1a、pwa、poa

p?? 以p开头,后面可以跟两个任意字符;

如:paa、p21、p31

简单的说就是有几个“?”,就有几个字符。且字符的位置与“?”一样!

3、[]:匹配指定集合内的任意单个字符;

如:(1)、[abc],则显示出文件中含有“a”或“b”或“c”的文件;例:fstab、ifconfg、passwd等等

(2)、 p[abc]*,则显示出文件已“pa”或“pb”或“pc”开头的文件;例:passwd、pam、pbc、pb2q3、pc3.txt等等。(注:有的文件名随机编写,电脑中并非存在)

(3)、如果想表示出所有字母,则可以表示为[a-z]或[A-Z];即p[a-z]=p[A-Z]。(注:不区分字符大小写)

(4)、如果想表示数字,则可以表示为[0-9];

(5)、如果想表示数字、字母,则可以表示为[a-z0-9]。注:两个连续的连字符表示集合也是可以的。

(6)、如果想表示字母大写,则可以表示为[[:upper:]]。注意:[:upper:]=A-Z;[[:upper:]]=[A-Z]。例:p[[:upper:]]*,则表示p后面必须是跟大写字母的单个字符,如pM、pA等等。

(7)、如果想表示字母小写,则可以表示为[[:lower]]。用法和[[:upper]]一样,请知悉!

(8)、如果想表示所有的数字,则可表示为[[:digit:]]

(9)、如果想表示出所有字母,不管大小写。则可表示为[[:alpha:]]。上面第二点已经提到一种,这是第二种表达方式,请知悉!

(10)、如果想表示所有字母、数字,则可表示为[[:alnum:]];

(11)、表达所有的空白字符,可用[[:space:]]表示;

(12)、表达所有的标点符号,可用[[:punct]]表示;

4、[^]:匹配指定集合外的任意字符;

如:(1)、如果想取非所有字母的字符,则可以表示为[^[:alpha]];例:p[^[:upper:]]*,则能表示文件有popd.d、p26、p2k.txt、pp.pdf、psswad等等。

练习:

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

(2) 复制/etc目录下,所以n开头,以非数字结尾的文件或目录至/tmp/etc目录下;

(3) 显示/usr/share/man目录下,所有以man开头,后跟一个数字结尾的文件或目录;

(4) 复制/etc目录下,所以p,m,r开头的,且以.conf结尾的文件或目录至/tmp/conf.d目录下;

答案:

(1) ls  -d  /etc/[^[:alpha:]][a-z]*

(2)cp  -r  /etc/n*[^0-9]  /tmp/etc

cp  -r  /etc/n*[^[:digit:]]  /tmp/etc

(3)ls  -d  /usr/share/man/man[0-9]

(4)cp  -r  /etc/[pmr].conf  /tmp/conf.d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值