Linux之正则表达式及通配符
2017-03-31 04:11
211 查看
正则表达式 用来匹配复合条件的字符串,是包含匹配。grep/awk/sed
通配符及元字符 用来匹配复合条件的文件名,是完全匹配
. | 单个任意字符,除换行符 |
# egrep "^.oo" /etc/passwd root:x:0:0:root:/root:/bin/bash | |
^ | 匹配行首 |
^abc 以abc开头 ^# 以#开头 # egrep "^root" /etc/passwd | |
$ | 匹配行尾 |
abc$ 以abc结尾 ^$ 匹配空白行 # grep "shutdown$" /etc/passwd | |
+ | 最少匹配1次 |
a+ 一个或多个连续的a (abc)+ 一个或多个连续的abc | |
? | 最多匹配1次,包括0次 |
a? 0个或1个a (abc)? 0个或1个abc | |
* | 匹配任意次数 |
a* 0个或多个连续的a,grep "a*" 即整篇文档,无意 (abc)* 0个或多个连续的abc | |
.* | 任意长度的任意字符串 |
元字符{} 限定表达式的匹配次数
\{n\} | 匹配n次 |
(ab){3} 匹配ababab | |
\{n,m\} | 匹配n-m次 |
(ab){1,3} 匹配ab/abab/ababab | |
\{n,\} | 匹配至少n次 |
(ab){2,} 匹配2个及以上连续的ab |
如下,使用扩展正则可省略斜杠 # egrep "^ro{2}t" /etc/passwd root:x:0:0:root:/root:/bin/bash # grep "^ro\{2,\}t" /etc/passwd root:x:0:0:root:/root:/bin/bash #grep -E "^ro{2}t" /etc/passwd root:x:0:0:root:/root:/bin/bash 元字符[] 匹配范围内的单个字符,[]内加^可取反
[alc_?] 匹配其中任意一个 |
[a-z] 匹配任意一个小写字母 |
[A-Z] 匹配任意一个大写字母 |
[0-9] 匹配任意一个数字 |
[a-Z0-9] 匹配任意字母或数字 |
[^A-Z] 匹配没有大写字母的行 |
^[^a-z] 匹配不以小写字母开头的行 |
其他元字符
() | 组合为整体(也用在后向引用) ab{1,3} 匹配ab/abb/abbb (ab){1,3} 匹配ab/abab/ababab |
| | 或者 root|bin 匹配root或bin |
\b | 单词边界 \broot\b 匹配单词root, 不匹配keroot/rooty/brooty等字符串 |
\< | 单词的开头 \<th 匹配以th开头的单词 |
\> | 单词的结束 \<root\> 作用与\broot\b相同 |
\ | 转义符号,可以为一些普通字符赋予特殊含义,或者将一些特殊字符变为普通字符 |
字符集合 [[:blank:]] 空格(space)与定位(tab)字符 [[:cntrl:]] 控制字符 [[:graph:]] 非空格(nonspace)字符 [[:space:]] 所有空白字符 [[:print:]] 可显示的字符 [[:xdigit:]] 十六进制数字 [[:punct:]] 所有标点符号 [[:lower:]] 小写字母 [[:upper:]] 大写字母 [[:alpha:]] 大小写字母 [[:digit:]] 数字 [[:alnum:]] 数字和大小写字母
通配符及元字符 用来匹配复合条件的文件名,是完全匹配
* 代表任意(0到多个)字符 ? 代表任意1个字符 ; 连续不同命令的分隔符 # 配置文件注释 | 管道 ~ 用户家目录 - 上一次的目录 $ 变量前需要加的符号 / 路径分隔符 \ 转义 >或1> 重定向 >> 追加重定向 < 输入重定向 << 追加输入重定向 ‘’ 单引号,不具有变量置换功能,输出即所得 "" 双引号,具有变量置换功能,解析变量后输出 `` tab上面的键中间为命令,会先执行,等价$() {} 中间为命令区块组合或内容序列 {4,5,6} {1..4} ! 非 && 当前一个指令执行成功后,执行后一个指令 || 当前一个指令执行失败时,执行后一个指令 .. 上一级目录 . 当前目录 ^ 反向选择符,例:grep -n '^[^a-zA-Z]' file []内的叫反向选择符,[]外的则表示定位在行首。查找行首不是英文字母的行
相关文章推荐
- linux下通配符与正则表达式
- Linux中通配符、正则表达式和扩展正则表达式
- linux下的通配符与正则表达式
- linux中的通配符与正则表达式
- linux中的正则表达式和通配符
- linux下的通配符与正则表达式
- linux 通配符与正则表达式(grep、find) (转载)
- linux通配符与正则表达式
- linux 正则表达式和通配符
- linux通配符和正则表达式
- Linux 系统的通配符与正则表达式
- Linux通配符和正则表达式的异同
- Linux正则表达式-通配符
- linux通配符与正则表达式
- linux下的通配符与正则表达式
- linux初学习之正则表达式和通配符
- Linux学习---shell编程(05-通配符,正则表达式)
- Linux 下的 通配符 & 正则表达式
- Linux 正则表达式与通配符
- Linux_正则表达式(2.通配符,sed)