欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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实例

  1. 显示/etc/passwd文件中不以/bin/bash结尾的行
    Linux正则表达式

2.显示/proc/meminfo文件中以大小s开头的行
Linux正则表达式
3.找出/etc/passwd中的两位或三位数
Linux正则表达式