OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

轮换

我们将讨论的第一个扩展正则表达式功能称为 交替,这是允许从一组表达式中发生匹配的工具。 正如括号表达式允许从一组指定字符中匹配单个字符一样,交替允许从一组字符串或其他正则表达式中进行匹配。

为了演示,我们将使用 grep的 和这个结合 回音. 首先,让我们尝试一个普通的旧字符串匹配:



[我@linuxbox ~]$ 回声“AAA”| AAA

AAA

[我@linuxbox ~]$ 回声“BBB” | AAA

[我@linuxbox ~]$

[我@linuxbox ~]$ 回声“AAA”| AAA

AAA

[我@linuxbox ~]$ 回声“BBB” | AAA

[我@linuxbox ~]$


一个非常简单的例子,我们将输出 回音 grep的 并查看结果。 当匹配发生时,我们看到它被打印出来; 当没有匹配发生时,我们看不到结果。

现在我们将添加交替,由竖线元字符表示:



[我@linuxbox ~]$ 回声“AAA”| grep -E 'AAA|BBB'

AAA

[我@linuxbox ~]$ 回声“BBB” | grep -E 'AAA|BBB'

BBB

[我@linuxbox ~]$ 回声“CCC” | grep -E 'AAA|BBB'

[我@linuxbox ~]$

[我@linuxbox ~]$ 回声“AAA”| grep -E 'AAA|BBB'

AAA

[我@linuxbox ~]$ 回声“BBB” | grep -E 'AAA|BBB'

BBB

[我@linuxbox ~]$ 回声“CCC” | grep -E 'AAA|BBB'

[我@linuxbox ~]$


这里我们看到正则表达式 'AAA|BBB', 意思是“匹配字符串 AAA 或字符串 BBB。” 请注意,由于这是一个扩展功能,我们添加了 -E 选项 grep的 (虽然我们可以使用 埃格雷普 程序),我们将正则表达式用引号括起来,以防止 shell 将竖线元字符解释为管道运算符。 交替不限于两种选择:



[我@linuxbox ~]$ 回声“AAA”| grep -E 'AAA|BBB|CCC'

AAA

[我@linuxbox ~]$ 回声“AAA”| grep -E 'AAA|BBB|CCC'

AAA


要将交替与其他正则表达式元素结合,我们可以使用 () 来分隔交替:



[我@linuxbox ~]$ grep -Eh '^(bz|gz|zip)' 目录*.txt

[我@linuxbox ~]$ grep -Eh '^(bz|gz|zip)' 目录*.txt


该表达式将匹配我们列表中以“bz”、“gz”或“zip”开头的文件名。 如果我们去掉括号,这个正则表达式的含义是:



[我@linuxbox ~]$ grep -Eh '^bz|gz|zip'目录*.txt

[我@linuxbox ~]$ grep -Eh '^bz|gz|zip'目录*.txt


更改以匹配任何以“bz”开头的文件名 或包含 “广州” 或包含 “压缩”。


OnWorks 的顶级操作系统云计算: