Linux_bash的特性之glob
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)、如果想表示所有的数字,则可表示为[[:dight:]]
(9)、如果想表示出所有字母,不管大小写。则可表示为[[:alpha:]]。上面第二点已经提到一种,这是第二种表达方式,请知悉!
(10)、如果想表示所有字母、数字,则可表示为[[:alnum:]];
(11)、表达所有的空白字符,可用[[:space:]]表示;
(12)、表达所有的标点符号,可用[[:punct]]表示;
4、[^]:匹配指定集合外的任意字符;
如:(1)、如果想取非所有字母的字符,则可以表示为[^[:alpha]];例:p[^[:upper:]]*,则能表示文件有popd.d、p26、p2k.txt、pp.pdf、psswad等等。
本人学习Linux没有多长时间,还是处于小白状态!这是第一次写博客,写的不好请包涵。如有错误或更好的建议,望教学。谢谢!
请知悉!
本文出自 “11265133” 博客,请务必保留此出处http://11275133.blog.51cto.com/11265133/1747928
以上是关于Linux_bash的特性之glob的主要内容,如果未能解决你的问题,请参考以下文章
2017-11-5Linux基础知识(10)bash基础特性