SHELL----正则表达式

一、文本搜索工具------grep

grep -参数 条件 文件名

其中参数有以下:
-i 忽略大小写
-c 统计匹配的行数
-v 取反,不显示匹配的行
-w 匹配单词
-E 等价于 egrep ,即启用扩展正则表达式
-n 显示行号
-rl 将指定目录内的文件打印
-A 数字 匹配行及以下 n 行
-B 数字 匹配行及以上 n 行
-C 数字 匹配行及上下 n 行
-q 静默模式,没有任何内容输出,使用 $? 来判断是否执行成功
-o 只显示匹配的内容

二、正则表达式常见元字符

POSIX字符类:POSIX字符类是一个形如:...: 的特殊元序列(meta sequence),他可以用于匹配特定的字****符范围

三、扩展正则表达式

四、实验

显示/etc/passwd 中以bash结尾的行信息

root@server \~# grep -n "bash$" /etc/passwd

找出/etc/passwd中包含三位数或者四位数的行信息

root@server \~# grep -n "\<0-9\{3,4\}\>" /etc/passwd

上例改写

root@server \~# grep -n "\<\[:digit:]\{3,4\}\>" /etc/passwd

检索/etc/grub2.cfg文件中,以至少一个空白字符开头,后面跟上非空白字符的行

root@server \~# grep -n "^\[:space:]\+\^\[:space:]" /etc/grub2.cfg

分析

^\[:space:] :表示以空白字符开头

\+:grep不支持扩展正则的元字符,需要转义

\^\[:space:]:不包含非空白字符

grep可以使用-E参数启用扩展正则,命令改为:

root@server \~# grep -nE "^\[:space:]+\^\[:space:]" /etc/grub2.cfg

也可以使用egrep,其支持扩展正则,命令改为

root@server \~# egrep -n "^\[:space:]+\^\[:space:]" /etc/grub2.cfg

检索netstat -tan 命令的运行结果中,以"LISTEN"后跟上0个或多个空白字符结尾的行信息

root@server \~# netstat -tan | grep "LISTEN\[:space:]*$"

*表示重复前面0次或多次,为结尾

检索fdisk -l 命令结果中,包含以/dev/开头后跟上n的行信息

root@server \~# fdisk -l | grep "^/dev/n"

检索 ldd /usr/bin/cat 命令结果中的文件路径

root@server \~# ldd /usr/bin/cat | grep -oE "/\^\[:space:]+"

-o:只显示检索命中的标红内容

-E:启用扩展正则

检索/proc/meminfo文件中,所有以大写A或大写S开头的行信息

root@server \~# grep -n "^AS" /proc/meminfo

显示/etc/passwd文件中当root、sshd、chrony的相关信息

root@server \~# egrep -n "(root|sshd|chrony)" /etc/passwd

需要使用egrep,其支持扩展正则

(|) 会对|左右两边的整体内容进行匹配

echo输出一个绝对路径,使用egrep取出其基名

root@server \~# echo /etc/yum.repos.d/ | egrep -o \^/+/?$

检索ifconfig命令结果的1-255之间的整数

root@server \~# ifconfig | egrep -o "\<(1-9|1-90-9|10-90-9|20-40- 9|250-5)\>"

相关推荐
踏着七彩祥云的小丑7 天前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
bosins8 天前
密码复杂度验证正则表达式
正则表达式
小森林之主8 天前
正则表达式零宽断言实战:凌晨3点的服务器报警
python·正则表达式·零宽断言·服务器报警·正则速查
小森林之主8 天前
Python re 模块速查:从实战对比中掌握正则表达式
python·正则表达式·性能测试·re模块·编程实战
程序猿零零漆9 天前
Python进阶之路:正则表达式、高级语法与核心数据结构(链表、二叉树)全解析
数据结构·python·正则表达式
2301_7818335210 天前
Python 正则表达式入门教程
开发语言·python·正则表达式
五阿哥永琪11 天前
正则表达式
数据库·mysql·正则表达式
小森林之主11 天前
深入正则表达式:核心语法与实战剖析
javascript·python·正则表达式·编程技巧·字符串处理
小森林之主11 天前
JavaScript 正则表达式:从零开始的实战对比
javascript·正则表达式·前端开发·性能对比·文本处理
不吃土豆的马铃薯11 天前
C++ 正则表达式入门详解
linux·服务器·网络·数据库·c++·正则表达式