详解Linux 正则表达式

正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为”元字符”)。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,本篇文章重点为大家讲解一下Linux中正则表达式。

我们可以使用 grep 命令来测试我们的正则表达式,grep命令使用正则表达式去尝试匹配指定文件的每一行,并将至少有一处匹配表达式的所有行显示出来。

grep 命令说明:

常用的选项OPTION:

-c 显示匹配到的行数之和

-o 仅显示匹配本身

-v 显示非匹配,取反

-i 不区分大小写

-E 支持扩展表达式

-q 静默模式

-n 显示匹配到的行的行号

-A 2 显示匹配到的行的后2行

-B 2 显示匹配到的行的前2行

-C 2 显示匹配到的行的前后2行

-V 显示版本信息

使用语法:

grep [OPTION]… PATTERN [FILE]…

grep “[匹配字符]匹配出现次数” /PATH/TO/SOMEFILE

字符匹配:

. 任意单个字符

[] 指定范围内的单个字符

[^] 指定范围外的的单个字符,取反

.* 任意长度的任意字符

[:alnum:] 所有的字母和数字      

[:alpha:] 所有的字母

[:blank:] 所有呈水平排列的空白字符

[:cntrl:] 所有的控制字符

[:digit:] 所有的数字

[:graph:] 所有的可打印字符,不包括空格

[:lower:] 所有的小写字母    

[:print:] 所有的可打印字符,包括空格

[:punct:] 所有的标点字符

[:space:] 所有呈水平或垂直排列的空白字符

[:upper:] 所有的大写字母    

[:xdigit:] 所有的十六进制数

[=字符=] 所有和指定字符相等的字符

匹配次数 :

* 其前面的字符出现任意次,0次或1次,或者多次

\? 其前面的字符出现0次或1次

\+ 其前面的字符出现1次或多次,至少出现1次

\{m\} 指定字符出现次数

\{m,n\} 至少出现m次,至多出现n次,范围取次

\{0,n\} 出现最多n次          

\{m,\} 出现最少m次

位置锚定:

^ 行首锚定,用于模式的最左侧

$ 行尾锚定,用于模式的最右侧

^……$ 整行, ^$ 空白行,^[[:space:]]*$ 空行或者有空白字符的行

\ 或 \b  词尾锚定

\  精确锚定单词

分组及引用:

\{xy\}*ab     表示多个字符出现0,1或多次。 \ 在这里作为转义符使用

\(abcd\){1,3}    表示包含abcd字符串最少出现1次,最多出现3次

\(1..2\).* \1      \1 是指引用从左侧起第一个()之间的字符

\(1..2\).* \(3..4\)\2    \2 是指引用从左侧起第二个()之间的字符

\(1..2\).* \(3..4\).*\(5..6\)\3   \3 是指引用从左侧起第三个()之间的字符

使用实例:

查看显示 /etc/fstab 文件以 # 注释开头的行:

这里也可以不加【】:

-v 取反,即显示不以#注释的行,-o 选项为只显示匹配到的字符串:

显示 /etc/fstab 文件非注释的行,锚定行首为 # 注释的行,取反:

显示 /etc/fstab 文件以#号开头,后面跟一个空格,后面为任意长度任意字符的行, -c 选项可以统计匹配到的行数:

在 /tmp/fstab 文件中加入多个空白行,以#号开头,后面仅跟一个空格,且不以空白符结尾的行:

显示 /tmp/sshd_config 文件中不以#注释、空白行以及有空白字符的行:

显示 /etc/passwd 文件中用户名和用户SHELL为一样的行:

显示 /tmp 目录下,以非字母开头,后面跟一个字母,后面为任意长度任意字符的文件或者目录:

显示 /tmp 目录下以非字母开头,后面仅跟一个字母,然后以非字母结尾的文件和目录:

显示 /etc 目录下以p开头不以数字结尾的所有文件和目录:

显示 ip a 或者 ifconfig 命令中的IP地址,-E 选项为支持扩展正则表达式:

-l 选项可以列出包含字符串的文件列表:

-w 精确锚定字符串,相当于 :

egrep 的使用方法跟 grep 基本一致,不需要转义符 \ 看起来更简洁:

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/221050.html<

(0)
运维的头像运维
上一篇2025-04-14 20:44
下一篇 2025-04-14 20:45

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注