linux shell编程学习笔记(9)正则表达式

1、什么是正则表达式

一串符号描述有共同属性的数据


一串符号:元符号

――正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。对于系统管理员来讲,正则表达式贯穿在我们的日常运维工作中,无论是查找某个文档,抑或查询某个日志文件分析其内容,都会用到正则表达式。

――其实正则表达式,只是一种思想,一种表示方法。只要我们使用的工具支持表示这种思想那么这个工具就可以处理正则表达式的字符串。常用的工具有grep, sed, awk

2、正则表达式的语法格式

#grep [选项]  ‘正则表达式’   文件列表      -

#前置命令  | grep [选项]  ‘正则表达式

3、正则表达式处理顺序:

以行为处理单位

对数据按先后顺序逐行处理

处理完当前行后,自动处理下一行,直到末行为止

默认输出与表达式匹配的行

4、正则表达式怎么写

――正则表达式由元字符组成

4.1、基本元字符

1^

――匹配行首

格式:^匹配字符



[root@moni01 shell]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@moni01 shell]#

2$

――匹配行尾

格式:匹配字符$



[root@moni01 shell]# grep /sbin/nologin$ /etc/passwd   
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

3.


――匹配任意单个字符。换行符\n 除外

wKiom1MQiVGj7hOgAARFyYtnKOc408.jpg


4[]

――匹配范围内的任意一个字符

――匹配优先





wKioL1MQiW2gzEvvAAEJXW53d-s254.jpg








5{}

――限制正则表达式的匹配次数


1{n} 匹配n

2{n,m} 匹配n-m

3{n,} 匹配至少n

匹配空格

wKioL1MQia_hTnlJAAKaDW2VvmI862.jpg


6+

――至少匹配一次(一次或多次)

wKioL1MQidvRdSppAAFmyGCBVzE290.jpg


7)?

――最多匹配一次(0次或1次)

wKioL1MQig7QL9oaAAGOw_2mmfw066.jpg


9*

――匹配任意次数。(零次到多次)



wKioL1MQimuQdLyXAAHwrC4jvug820.jpg

(10)单词边界匹配


1)匹配整个单词/单词边界

如: \broot\b

      \<root\>

[root@moni01 tmp]# egrep '\broot\b' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@moni01 tmp]#
2)匹配单词的开头

如:\broo

        \<roo

3)匹配单词的结束

如:oot\b

        Oot\>


wKiom1MQi4GhEpD1AAKr7bNf6Eo751.jpg




你可能感兴趣的:(linux,linux,shell,正则表达式)