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-9\]\[0-9\]\|1\[0-9\]\[0-9\]\|2\[0-4\]\[0- 9\]\|25\[0-5\])\\\>"

相关推荐
长城20246 天前
HTML5中表单的pattern属性解析
前端·正则表达式·html·html5·pattern·pattern属性·pattern正则表达式
Gss7776 天前
Linux 正则表达式详解(基础 + 扩展 + 实操)
linux·运维·正则表达式
黑客思维者6 天前
正则表达式(九)网络安全:检测SQL注入攻击 + 检测XSS跨站脚本 + 扫描敏感信息泄露 + 匹配暴力破解异常IP
sql·web安全·正则表达式
黎雁·泠崖6 天前
Java常用类核心详解(七):正则表达式 Regex 从入门到实战
java·开发语言·正则表达式
秀儿还能再秀6 天前
正则表达式核心语法 + Python的 re 库中常用方法
python·正则表达式
xcLeigh6 天前
Python入门:Python3 正则表达式全面学习教程
python·学习·正则表达式·教程·python3
数据知道6 天前
MongoDB 正则表达式查询:在 MongoDB 中实现模糊搜索与索引优化陷阱
数据库·mongodb·正则表达式
A懿轩A6 天前
【Java 基础编程】Java 正则表达式实战:Pattern/Matcher、元字符与常用正则,验证与提取必备
java·开发语言·正则表达式
石牌桥网管7 天前
正则表达式:匹配不包含指定字符串的文本
java·javascript·python·正则表达式·go·php