Linux正则表达式
程序员文章站
2022-06-26 16:11:00
...
介绍grep命令,正则表达式是grep命令的一种使用方法
注意正则表达式与通配符的区别
- 在文本过滤工具grep中,都是用正则表达式,针对的是文件内容的过滤查找
- 通配符经常用在文件名上,比如find、ls、mv、cp等
1正则表达式
正则表达式常用元字符
1.1字符匹配
字符 | 描述 |
---|---|
. | 匹配任意单个字符 |
.* | 匹配任意长度任意字符 |
[ ] | 匹配指定范围内的单个字符 |
[^ ] | 匹配指定范围外的任意单个字符 |
1.2匹配次数
字符 | 描述 |
---|---|
* | 匹配 * 前面的字符任意次数 |
? | 匹配 ? 前面的字符最多一次 |
+ | 匹配 + 前面的字符至少一次 |
{m} | 匹配 {m}前面的字符m次 |
{m,n} | 匹配 {m,n}前面的字符最少m次,最多n次 |
{,n} | 匹配 {0,n}前面的字符最多n次 |
{m,} | 匹配 {m,}前面的字符最少m次 |
1.3位置锚定
字符 | 描述 |
---|---|
^ | 行首锚定 ‘^word’ |
$ | 行尾锚定 ‘word$’ |
^$ | 空白行 ‘^$’ |
^word$ | 以word开头且以word结尾的行 ‘^word$’ |
<或者\b | 词首锚定 ‘<单词首部’ 或者 ‘\b单词首部’ |
>或者\b | 词尾锚定 ‘单词尾部>’ 或者 ‘单词尾部\b’ |
<word>或\b…\b | 匹配完整单词 |
1.4分组和引用和或者
分组
分组:\(\)将一个或者多个字符捆绑在一起,当成一个整体进行处理
分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部变量中
这些变量的命名方式为:\1,\2,\3……
\1 从左侧第一个左括号起到与之相匹配的右括号之间的 模式所匹配到的字符
示例:
\(string1+\(string2\)\)
\1=string1+\(string2\)
\2=string2
反向引用:引用前面的分组括号中的模式所匹配字符而非模式本身
或者
|:
a|b:a或b C|cat:C或cat \(C|c\)|at:Cat或cat
2实例
- 显示/etc/passwd文件中不以/bin/bash结尾的行
2.显示/proc/meminfo文件中以大小s开头的行
3.找出/etc/passwd中的两位或三位数
上一篇: Linux正则表达式