linux中的通配符和正则表达式
2013-10-13 13:35
357 查看
总结:
通配符,即globbing,多用于文件名上,如ls,tar,find等命令
正则表达式,则主要针对文件内容,如grep,awk,sed等命令
通配符:
当查找文件时,可以使用通配符来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,也可以使用通配符。
例如:当你查看当前目录下所有以virtual开头的目录时
用*可以代替之后的所有字符。
再如:当你想删去当前目录下所有file开头的文件时
通配符的语法:
注:红色部分测试时有些问题。
在test目录下有两个文件,abc和ABC。当使用[a-z]测试时,两个文件都显示出来了,而不是只显示abc。
通配符中字符的集合:
[:digit:]只是相当于0-9,在使用时,应使用[[:digit:]]
注:测试上面的例子,完全没有问题
正则表达式:
正则表达式(也称为“regex”或“regexp”)是一种用来描述文本模式的特殊语法。在 Linux 系统上,正则表达式通常被用来查找文本的模式,以及对文本流执行“搜索-替换”操作以及其它功能。
例如:找出/etc/passwd中以root开头的行
再如:将/etc/passwd中bash为/sbin/nologin的用户找出来
正则式的语法:
另附上扩展正则表达式:
可在egrep中使用,只列出与标准正则表达式不一样的部分。
本文出自 “footage of linux” 博客,请务必保留此出处http://evanlinux.blog.51cto.com/7247558/1308363
通配符,即globbing,多用于文件名上,如ls,tar,find等命令
正则表达式,则主要针对文件内容,如grep,awk,sed等命令
通配符:
当查找文件时,可以使用通配符来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,也可以使用通配符。
例如:当你查看当前目录下所有以virtual开头的目录时
用*可以代替之后的所有字符。
再如:当你想删去当前目录下所有file开头的文件时
rm -rf file*
通配符的语法:
* | 任意长度的任意字符 |
? | 任意单个字符 |
^ | 脱字符,取反,指定范围外的任意单个字符 |
[] | 指定范围内的任意单个字符 |
[0-9] | 所有的数字 |
[a-z] | 所有的小写字母 |
[A-Z] | 所有的大写字母 |
[a-zA-Z] | 所有的字母 |
[0-9a-zA-Z] | 所有的数字和字母 |
在test目录下有两个文件,abc和ABC。当使用[a-z]测试时,两个文件都显示出来了,而不是只显示abc。
通配符中字符的集合:
[:digit:] | 所有数字, 相当于0-9 |
[:lower:] | 所有的小写字母 |
[:upper:] | 所有的大写字母 |
[:alpha:] | 所有的字母 |
[:alnum:] | 相当于[0-9a-zA-Z] |
[:space:] | 空白字符 |
[:punct:] | 所有标点符号 |
注:测试上面的例子,完全没有问题
正则表达式:
正则表达式(也称为“regex”或“regexp”)是一种用来描述文本模式的特殊语法。在 Linux 系统上,正则表达式通常被用来查找文本的模式,以及对文本流执行“搜索-替换”操作以及其它功能。
例如:找出/etc/passwd中以root开头的行
再如:将/etc/passwd中bash为/sbin/nologin的用户找出来
正则式的语法:
^ | 锚定行首的符合条件的内容,用法格式“^pattern” |
$ | 锚定行尾的符合条件的内容,用法格式“pattern$” |
. | 匹配任意单个字符 |
* | 匹配紧挨在其前面的字符任意次 |
[] | 匹配指定范围内的任意单个字符 |
[^] | 匹配指定范围外的任意单个字符 |
[a-z], [A-Z], [0-9] | 同通配符 |
[:lower:],[:upper:],[:digit:] | 同上 |
[:alpha:],[:alnum:],[:space:],[:punct:] | 同上 |
\? | 匹配紧挨在其前面的字符0次或1次 |
\{m,n\} | 匹配其前面的字符至少m次,至多n次 |
\< | 锚定词首,用法格式:\<pattern |
\> | 锚定词尾,用法格式:pattern\> |
\(\) | 分组,用法格式: \(pattern\) |
可在egrep中使用,只列出与标准正则表达式不一样的部分。
+ | 匹配其前面的字符至少1次 |
? | 匹配其前面的字符0次或1次 |
{m,n} | 匹配其前面出现的字符至少m次,至多n次 |
() | 分组,支持引用\1, \2 |
a|b | 二选一 |
^ $ . * [] [^] \< \> | 与标准正则式相同 |
相关文章推荐
- Linux中通配符、正则表达式和扩展正则表达式
- Linux之正则表达式及通配符
- linux_shell 每天一小记(1) 通配符
- 10-06 Linux的基本命令以及一些简单的通配符说明
- Linux 正则表达式
- linux中的通配符与正则表达式
- Linux下通配符总结
- Linux 正则表达式
- linux 通配符
- Linux 通配符的类型和基本含义
- linux中的通配符、元字符、转义符
- linux通配符,grep和 egrep区别
- linux下的命令行通配符总结
- linux 正则表达式
- linux c 语言 正则表达式
- linux下通配符及I/O重定向
- linux中的通配符与正则表达式
- Linux 终端通配符示例入门
- Linux下通配符总结
- linux通配符