文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux如何使用正则表达式

2023-06-27 13:02

关注

这篇文章将为大家详细讲解有关Linux如何使用正则表达式,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

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

grep 命令说明:

Linux如何使用正则表达式

常用的选项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 文件以 # 注释开头的行:

Linux如何使用正则表达式

这里也可以不加【】:

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

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

Linux如何使用正则表达式

关于“Linux如何使用正则表达式”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯