Linux拓展通配符的使用
来源:互联网 发布:如何申请网络教育平台 编辑:程序博客网 时间:2024/06/05 13:33
最近学习Linux程序设计,涉及到关于通配符的使用问题,在看了书之后有了一些心得,现在分享如下。
常用通配符有:*,?。“ * ”是用来匹配多个字符的,而“?”则是用来匹配单个字符的。然而,有的时候我们可能只是想匹配某几个字符串或者几个字符,这个时候拓展通配符就可以派上用场了。
拓展通配符有“[...]”,"{..,..}"两种,前一个是对中括号内的单个字符进行匹配,如【abc】就是匹配a或者b或者c这3个字符,在【后面加上" ! "或者“ ^ ”,就可以实现非匹配的模式,如【!abc】或者【^abc】就可以匹配出了a、b、c之外的字符了;而" {} "则是匹配多个字符串的,中间用逗号隔开,如{abc,bcd},就是匹配abc或者bcd这2个字符串。
下面就具体的案例进行实际的解释:
假设当前文件夹下有以下文件:
我们想要实现分类的效果,把属于c的文件放到c的文件夹里面,而属于Java的文件放到Java文件夹里面,把属于shell脚本的文件放到shell文件夹里面,而且不能把move文件放进去,因此,我们可以写一个如下所示的程序来实现分类的效果:
for file in $(ls *.{java,class})domv $file java/donefor file in $(ls *.{[coh],out,cpp})domv $file c/donefor file in $(ls *.sh)doif echo $file | grep "move"thenecho $fileelsemv $file shell/fidoneexit 0
最前面的{java,class}就是把匹配文件后缀为java和class的给提取出来,而c语言的文件有点多,后缀有c、o、h、out、cpp,这时候就用到两个的合用,{[coh],out,cpp}就是把这些匹配的都提取出来。而第三个就麻烦了一些,因为要防止我们的脚本文件被提取出来,所以加了个判断。
这就是我对通配符和拓展通配符的一些小的见解,如有问题,欢迎指正
- Linux拓展通配符的使用
- Linux 学会使用通配符
- shell '%'通配符和 '#' 通配符的使用
- TD通配符的使用
- strut2 通配符的使用
- 通配符 的使用
- 通配符的使用
- struts2通配符的使用
- struts2通配符的使用
- Access 通配符的使用
- 泛型-通配符的使用
- struts2通配符的使用
- struts2通配符的使用
- struts2的通配符使用
- struts2:通配符的使用
- Word通配符的使用
- struts2通配符的使用
- 通配符的使用规则
- Error generating final archive: Debug certificate
- Leetcode Climbing Stairs
- androidjava.lang.NoClassDefFoundError: org.androidpn.client.ServiceManager
- Android虚线分割Shape
- 用eclipse新建一个android工程无法自动生成R.java文件
- Linux拓展通配符的使用
- 有关Android的Activity背景图片设置和传递
- Median of Two Sorted Arrays -- leetcode -- Python
- 农夫过河问题的c语言实现
- 東京喰種_经典台词中日双语1
- 向量叉积的应用(三角形面积,线段相交,多边形面积,多边形凹凸性)
- [Intel汇编-NASM]基本语法
- [leetcode 89] Gray Code
- 胡博君解Java中简单工厂模式