Bash中的文件名匹配
在系統中查找文件有兩個方式:1、使用文件名通配的方式去找 2、通過grep+正則表達式去找。
這兩個不是同一個方式,雖然他們的元字符有很多相同的地方,但是還是有很大區別的。這個區別只能自己慢慢體會,我在這里會盡可能的標注出,它們之間的不同。
首先看一下文件名通配的元字符有哪些:
*:匹配任意長度任意字符
?:匹配任意單個字符
[]:匹配指定范圍內的任意單個字符 比如[abc]、[a-z] 字母范圍不區分大小寫?
[0-9a-z]:該范圍表示所有數字和字母
[^0-9a-z]:該范圍表示除所有數字和字母之外的單個字符
[:space:]:所有空白字符
[[:space:]]:最外面的[]表示任意單個字符,里面的[]代表空白字符
[[:punct:]]:所有的標點符號當中的任意一個
[[:lower:]]:所有的小寫字母當中的任意一個
[[:upper:]]:所有的大寫字母當中的任意一個
[^[:upper:]]:所有非大寫字母當中的任意一個
[[:digit:]]=[0-9]
[[:alnum:]]:所有的字母+數字當中的任意一個
[[:alpha:]]:所有字母字符當中的任意一個
1、找出當前目錄中,文件名中間有數字的文件
原有文件
找出指定文件
[[:digit:]]?兩個*表示數字字符前后都可以有字符,文件名只要有數字即可。
但是這里問題就來了,如果想要找文件名中包含N個數字的文件名怎么辦?這個方式查不到,就只能用grep+正則表達式了。
2、查找當前目錄中,數字開頭的文件
在這個方式中,沒有開始符和結束符 第一個寫入的就是開始,最后一個寫入的就是結束。
3、查看當前目錄下,開頭是a,結尾是c的文件
4、查看當前目錄下,開始是a,結尾是c 而且文件名為3個字符的文件
5、查看當前目錄下,文件名包含大寫字符的文件
6、查看當前目錄下,以非字母結尾的文件
9、創建一個坑爹的文件
這個文件名是一個文件,文件名稱中空格
證明:
本文轉自 yueyue207 51CTO博客,原文鏈接:http://blog.51cto.com/yueyue207/2047705
總結
以上是生活随笔為你收集整理的Bash中的文件名匹配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nginx安装编译,动态添加模块及其各模
- 下一篇: linux非root用户启动桌面