Shell编程之正则表达式

这篇具有很好参考价值的文章主要介绍了Shell编程之正则表达式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、正则表达式与通配符

Linux中的正则表达式(regular expression)和通配符(wildcard)都是用于匹配字符串的工具,但它们之间存在一些区别和应用场景的不同。

正则表达式是描述一种字符串匹配的模式,通过特殊的字符和语法,可以检查一个字符串是否匹配某种模式,匹配成功后可以进行子串替换、取出符合条件的子串等操作。
比如,使用正则表达式 runoo+b 可以匹配 runoob、runooob、runoooooob 等字符串,其中 + 表示匹配前面的字符 o 至少一次。Linux系统中常用的正则表达式引擎包括grep、sed和awk等。

通配符主要用于匹配文件名或路径名,在Linux系统中通配符可以用来快速查找符合特定规则的文件名或路径名。在通配符中,星号 (*) 代表匹配任意长度的任意字符,问号 (?) 代表匹配任意单个字符。
比如,使用通配符 *.txt 可以查找当前目录下所有后缀为 .txt 的文件。除此之外,Linux系统中还有一些其他的通配符,如方括号([])、花括号({})等,可用于更灵活的匹配。

虽然 Linux 中的正则表达式和通配符都可以用于字符串匹配,但正则表达式支持更加复杂的规则和语法,可以实现更加精确的匹配,通配符相对来说则较为简单,只能进行基本的字符串匹配以及文件名或路径名匹配。

2、基础正则表达式

在 Linux 中,基础正则表达式是指 Basic Regular Expressions (BRE),其特点是使用一些基本的元字符来匹配字符串。
以下是一些基础的元字符及其作用

  • . :匹配任意单个字符。比如 a.c 可以匹配 abc、adc、axc 等字符串。
  • ^ :匹配行首字符。比如 ^hello 可以匹配行首为 hello 的字符串。
  • $ :匹配行尾字符。比如 hello$ 可以匹配行末为 hello 的字符串。
  • [] :字符集,匹配其中的任意一个字符。比如 [abc] 匹配 a 或 b 或 c。
  • [^] :否定字符集,匹配不在其中的任意一个字符。比如 [^abc] 匹配除 a、b、c 以外的任意一个字符。
  • \ :转义字符,可以将特殊字符转义为普通字符,例如 \. 可以匹配 . 字符本身。
  • * :匹配前面的字符零次或多次。比如 ho*l 可以匹配 hl、hol、hool 等字符串。
  • \{m\} :匹配前面的字符 m 次。比如 ho\{2\}l 匹配 hool,但不匹配 hol 或 hoool。
  • \{m,\} :匹配前面的字符至少 m 次。比如 ho\{2,\}l 匹配 hool、hoool、hoooooool 等字符串。
  • \{m,n\} :匹配前面的字符至少 m 次,至多 n 次。比如 ho\{2,4\}l 匹配 hool、hoool、hoooool,但不匹配 hol 或 hoooooool。
  • () :用于分组操作,例如 (abc)+ 表示匹配一个或多个 abc。
  • | :用于选择操作,例如 cat|dog 可以匹配 cat 或 dog。

举例:

查找包含 he 并以 l 结尾的行:

grep 'he.*l$' test.txt

查找包含三个连续小写字母的单词:

grep '[a-z]\{3\}' test.txt

查找包含至少三个连续小写字母的单词:

grep '[a-z]\{3,\}' test.txt

查找包含两到五个连续小写字母的单词:

grep '[a-z]\{2,5\}' test.txt

查找包含 a, e, 或 i 中的任意一个字符的单词 and 查找不包含 a, e, 或 i 中的任意一个字符的单词:

grep '[aei]' test.txt
grep '[^aei]' test.txt

查找以 c 开头,以 t 结尾,并在中间包含两个字母的单词:

grep '^c(..)t$' test.txt

查找包含 e 或 l 的行:文章来源地址https://www.toymoban.com/news/detail-429288.html

grep 'e|l' test.txt

到了这里,关于Shell编程之正则表达式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Shell编程之正则表达式

    Linux中的正则表达式(regular expression)和通配符(wildcard)都是用于匹配字符串的工具,但它们之间存在一些区别和应用场景的不同。 正则表达式是描述一种字符串匹配的模式,通过特殊的字符和语法,可以检查一个字符串是否匹配某种模式,匹配成功后可以进行子串替换、取出符

    2024年02月01日
    浏览(9)
  • Shell编程基础(十三)正则表达式

    格式:^ 表达式 $ 在不同的场景下,定义是一样,但使用要按照具体的命令去调用,中间的表达式都是通用的 普通元字符 所谓元数据,就是描述数据的数据,在这里就是描述正则的数据 ^ 表示正则从字符串 整行 起始位置匹配 ^abc 匹配 以abc开始的字符串 $ 表示正则一直匹配到

    2024年02月14日
    浏览(11)
  • 【Linux命令行与Shell脚本编程】第十九章 正则表达式

    【Linux命令行与Shell脚本编程】第十九章 正则表达式

    正则表达式基础 定义BRE模式 扩展正则表达式 在sed和gawk中创建正则表达式,以得到所需的数据。 正则表达式是一种可供Linux工具过滤文本的自定义模板,使用元字符来描述数据流中的一个或多个字符. Linux工具(比如sed或gawk)会在读取数据时使用正则表达式对数据进行模式匹配

    2024年02月13日
    浏览(15)
  • Linux Shell 脚本编程学习之【第3章 正则表达式 (第一部分)】

    1、正则表达式是由一串字符和元字符构成的字符串,简称 RE(Regular Expression)。 2、正则表达式起到数据过滤作用。 3、POSIX 标准将正则表达式分为两类:基本的正则表达式和扩展的正则表达式,大部分 Linux 应用和工具仅支持基本的正则表达式。 Linux Shell 以一串字符作为表达式

    2024年02月16日
    浏览(10)
  • Linux Shell 脚本编程学习之【第3章 正则表达式 (第二部分) grep命令】

    1、文本搜索工具 2、GREP 是Global search Regular Expression and Print out the line的简称,即全面搜索正则表达式并把行打印出来。 3、grep命令的模式十分灵活,可以是字符串,也可以是变量,还可以是正则表达式。模式中包含空格,则必须用双引号括起来。 选 项 意 义 -c 只输出匹配行

    2024年02月16日
    浏览(9)
  • shell脚本正则表达式

    shell脚本正则表达式

    声明: 以下内容为个人笔记,内容不完全正确,请谨慎参考。 含义: 正则表达式使用的每个单独字符串来描述、匹配一些列符合语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。在Linux中,grep,sed,awk等文本处理工具都支

    2024年04月22日
    浏览(12)
  • shell 正则表达式详解

    shell 正则表达式详解

    目录 正则表达式 一,什么是正则表达式 二,为什么使用正则表达式 三,如何使用正则表达式 示例: 四,基本正则表达式 基本正则表达式示例: 正则表达式字符集示例: 五,扩展正则表达式 扩展正则表达式示例: 扩展:        正则表达式是通过一些特殊字符的排列,

    2024年01月17日
    浏览(12)
  • Linux Shell :正则表达式

    Linux Shell :正则表达式

    先来看一句 Shell 代码: dpkg --list : dpkg 是 Debian 系列 Linux 发行版(如 Ubuntu)的包管理工具。 --list 选项用于列出所有已安装的软件包。 | :这是一个管道符号,用于将前一个命令的输出作为后一个命令的输入。在这里, dpkg --list 的输出被直接传递给 grep 命令。 grep -E -o \\\'cu

    2024年02月08日
    浏览(9)
  • Linux:shell脚本 正则表达式与AWK

    Linux:shell脚本 正则表达式与AWK

    目录   一、正则表达式 1.2元字符  1.3表示次数 1.4位置锚定 1.5分组或其他 1.6扩展正则表达式 1.7grep 二、AWK awk -F ​编辑三、sed 1.sed简介 2.sed工作流程 3.sed命令格式 3.1打印全部内容  3.2 查看文件,打印全部内容  3.3打印指定行内容 3.4支持正则表达式,打印范围内容  3.5#,/关

    2024年02月12日
    浏览(14)
  • Shell 正则表达式及综合案例及文本处理工具

    Shell 正则表达式及综合案例及文本处理工具

     目录 一、常规匹配 二、常用特殊字符 三、匹配手机号 四、案例之归档文件 五、案例之定时归档文件 六、Shell文本处理工具 1. cut工具 2. awk工具 一串不包含特殊字符的正则表达式匹配它自己 例子,比如说想要查看密码包含root字符串的,可以这样写 cat /etc/passwd | grep root 特

    2024年01月17日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包