bash文件名统配
2015-10-14 18:23
330 查看
bash基础特性之globbing,即文件名通配:
文件名通配:使用元字符匹配字符
*:匹配任意长度的任意字符
假如文件名为paaaa,则pa*,*pa*,*pa,p*a,*p*a
?: 匹配任意单个字符
[]: 匹配指定集合内的任意单个字符,必须是集合内的一个字符。
[0-9]: 任意数字
[a-z]: 任意小写字母
[A-Z]: 任意大写字母
[0-9a-zA-Z]: 所有字母和数字 [[:alnum:]]
p[mn]: pm或者pn
[^]: 匹配指定集合外的任意单个字符,必须是集合外的一个字符。
p[^m-z]*
字符集合:只取一个
[:space:] 所有空白字符 [[:space:]]
[:punct:] 所有标点符号
[:lower:] 所有小写字母
[:upper:] 所有大写字母
[:digit:] 所有数字
[:alpha:] 所有字母
[:alnum:] 所有字母和数字
练习1:显示/var目录下所有l开头,以一个小写字母结尾,且中间出现一位数字的文件或目录;
# ls -d /var/l*[[:digit:]]*[[:lower:]]
练习2:显示/etc/目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
# ls -d /etc/[0-9]*[^0-9]
练习3: 显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;
# ls -d /etc/[^[:alpha:]][[:alpha:]]*
练习4:复制/etc/下,所有以m开头,以非数字结尾的文件或目录至/tmp/mageedu目录中;
# mkdir /tmp/mageedu
# cp -a /etc/m*[^0-9] /tmp/mageedu/
练习5:复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mageedu2目录中;
# mkdir /tmp/mageedu2
# cp -a /etc/*.d /tmp/mageedu2/
练习6:复制/etc目录下,所有以.conf结尾,以m,n,r,p开头的文件或目录至/tmp/mageedu3目录中;
# mkdir /tmp/mageedu3
# cp -a /etc/[mnrp]*.conf /tmp/mageedu3
文件名通配:使用元字符匹配字符
*:匹配任意长度的任意字符
假如文件名为paaaa,则pa*,*pa*,*pa,p*a,*p*a
?: 匹配任意单个字符
[]: 匹配指定集合内的任意单个字符,必须是集合内的一个字符。
[0-9]: 任意数字
[a-z]: 任意小写字母
[A-Z]: 任意大写字母
[0-9a-zA-Z]: 所有字母和数字 [[:alnum:]]
p[mn]: pm或者pn
[^]: 匹配指定集合外的任意单个字符,必须是集合外的一个字符。
p[^m-z]*
字符集合:只取一个
[:space:] 所有空白字符 [[:space:]]
[:punct:] 所有标点符号
[:lower:] 所有小写字母
[:upper:] 所有大写字母
[:digit:] 所有数字
[:alpha:] 所有字母
[:alnum:] 所有字母和数字
练习1:显示/var目录下所有l开头,以一个小写字母结尾,且中间出现一位数字的文件或目录;
# ls -d /var/l*[[:digit:]]*[[:lower:]]
练习2:显示/etc/目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
# ls -d /etc/[0-9]*[^0-9]
练习3: 显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;
# ls -d /etc/[^[:alpha:]][[:alpha:]]*
练习4:复制/etc/下,所有以m开头,以非数字结尾的文件或目录至/tmp/mageedu目录中;
# mkdir /tmp/mageedu
# cp -a /etc/m*[^0-9] /tmp/mageedu/
练习5:复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mageedu2目录中;
# mkdir /tmp/mageedu2
# cp -a /etc/*.d /tmp/mageedu2/
练习6:复制/etc目录下,所有以.conf结尾,以m,n,r,p开头的文件或目录至/tmp/mageedu3目录中;
# mkdir /tmp/mageedu3
# cp -a /etc/[mnrp]*.conf /tmp/mageedu3
相关文章推荐
- Android系统 adb shell命令大全
- Working with Python subprocess - Shells, Processes, Streams, Pipes, Redirects
- eclipse移植cocos2dx工程报错:Program "bash" is not found in PATH
- shell的脚本循环处理
- 09-Windows Server 2012 R2 会话远程桌面-标准部署-使用PowerShell进行部署2-2
- 08-Windows Server 2012 R2 会话远程桌面-标准部署-使用PowerShell进行部署2-1
- shell控制流结构笔记
- linux Bash脚本基础符号总结 (一)
- Shell学习/基本Linux命令/文件与目录
- shell脚本报错:-bash: xxx: /bin/sh^M: bad interpreter: No such file or directory
- 让你提升命令行效率的 Bash 快捷键
- shell脚本之lnmp的搭建
- Shell编程关于函数要注意的几点
- exit(-1)或者return(-1)shell得到的退出码为什么是255
- shell三剑客之grep
- ansible 连接 windows (通过powershell)
- shell 中date 的用法
- 怎样设置一个适合自己的终端(shell)->zsh 终极cell ->装逼神器
- 基于 uiautomator 与 shell 的自动化测试工具
- UiAutomator 与 Shell 结合的力量