18.1. 正则表达式简明介绍

表达式是由字符组成的字符串。那些具有超出其字面意义的解释的字符被称为 元字符。例如,引号可以表示人的言语、同上,或者对于后面的符号具有元意义 [1]。正则表达式是匹配(或指定)模式的字符和/或元字符的集合。

正则表达式包含以下一项或多项

正则表达式 (RE) 的主要用途是文本搜索和字符串操作。正则表达式 匹配 单个字符或一组字符——一个字符串或字符串的一部分。

Note

sededex 的某些版本支持上面描述的扩展正则表达式的转义版本,GNU 实用程序也支持。

SedawkPerl 用作脚本中的过滤器时,在“筛选”或转换文件或 I/O 流时,将正则表达式作为参数。有关此的说明,请参见 示例 A-12示例 A-16

关于这个复杂主题的标准参考是 Friedl 的 精通正则表达式。 Dougherty 和 Robbins 的 Sed & Awk 也对正则表达式进行了非常清晰的阐述。有关这些书的更多信息,请参见 书目

注释

[1]

元意义 是术语或表达式在更高抽象层次上的含义。例如,正则表达式字面 意思是符合公认用法的普通表达式。元意义 则截然不同,本章对此进行了详细讨论。

[2]

由于 sedawkgrep 处理单行,因此通常不会有换行符来匹配。在多行表达式中存在换行符的情况下,点将匹配换行符。

#!/bin/bash

sed -e 'N;s/.*/[&]/' << EOF   # Here Document
line1
line2
EOF
# OUTPUT:
# [line1
# line2]



echo

awk '{ $0=$1 "\n" $2; if (/line.1/) {print}}' << EOF
line 1
line 2
EOF
# OUTPUT:
# line
# 1


# Thanks, S.C.

exit 0