grep命令:之 Perl 正则表达式
侧边栏壁纸
  • 累计撰写 64 篇文章
  • 累计收到 1 条评论

grep命令:之 Perl 正则表达式

soulio
2024-09-17 / 0 评论 / 2 阅读 / 正在检测是否收录...

一、Perl 正则表达式简介

Perl 正则表达式(Perl Compatible Regular Expressions,PCRE)是一种强大而灵活的正则表达式语法,它由 Perl 编程语言中的正则表达式语法演变而来,在许多编程语言和工具中都得到了广泛应用。

Perl 正则表达式非常灵活,支持许多高级功能,例如零宽断言、回溯引用、嵌入代码等。它在文本处理、模式匹配和数据提取等方面非常强大。

二、Perl 常用规则和语法

  1. 元字符


    • .​: 匹配任意单个字符,除了换行符。
    • ^​: 匹配行首。
    • $​: 匹配行尾。
    • *​: 匹配前一个字符的零个或多个重复。
    • +​: 匹配前一个字符的一个或多个重复。
    • ?​: 匹配前一个字符的零个或一个重复。
    • |​: 或运算符,匹配两个或多个模式中的任意一个。
    • []​: 字符类,匹配括号内的任意单个字符。
    • ()​:分组,用于捕获子模式。
    • {}​:指定重复次数的区间。
  2. 特殊字符


    • \d​: 匹配数字字符。
    • \D​: 匹配非数字字符。
    • \w​: 匹配单词字符(字母、数字、下划线)。
    • \W​: 匹配非单词字符。
    • \s​: 匹配空白字符(空格、制表符、换行符等)。
    • \S​: 匹配非空白字符。
  3. 量词


    • {n}​: 匹配前一个元素恰好 n 次。
    • {n,}​: 匹配前一个元素至少 n 次。
    • {n,m}​: 匹配前一个元素至少 n 次,最多 m 次。
  4. 修饰符


    • i​: 不区分大小写。
    • m​: 多行模式,使 ^​ 和 $​ 匹配行首和行尾。
    • s​: 单行模式,使 .​ 匹配任意字符,包括换行符。
    • x​: 忽略空白和注释。

三、Perl 示例

grep 提取硬盘温度(整行)

#命令
sudo smartctl -a /dev/sda | grep Temperature_Celsius 
#输出
194 Temperature_Celsius     0x0022   100   100   050    Old_age   Always       -       40

grep 提取硬盘温度(仅匹配部分)

#命令
sudo smartctl -a /dev/sda | grep Temperature_Celsius | grep -Po '\d{2}$'
#输出
40

本文共 419 个字数,平均阅读时长 ≈ 2分钟
0

海报

正在生成.....

评论 (0)

取消