对于awk而言,正则表达式是置于两个正斜杠之间、由字符组成的模式。Awk支持使用正则表达式元字符对正则表达式进行某种方式修改。如果输入行中的某个字符串与正则表达式相匹配,则最终条件为真,于是执行与该表达式关联的所有操作。如果没有指定操作,则打印与正则表达式匹配的记录。
范例 3-15
[root@localhost script]# awk -F ':' '/root/' passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
### 解析 ###
如果记录中包含模式 root ,就会打印该行记录。
范例 3-16
[root@localhost script]# awk -F ':' '/root/{print $1,$3,$7}' passwd
root 0 /bin/bash
operator 11 /sbin/nologin
### 解析 ###
如果记录中包含模式 root ,就会打印该行记录的第1,第3,第7字段。
|
表-Awk的正则表达式元字符
元字符
| 说明
|
^
| 在串首匹配
|
$
| 在串尾匹配
|
.
| 匹配单个任意字符
|
*
| 匹配零个或多个前导字符
|
+
| 匹配一个或多个前导字符
|
?
| 匹配零个或一个前导字符
|
[ABC]
| 匹配指定字符组(即A、B和C)中任一字符
|
[^ABC]
| 匹配任何一个不在指定字符组(即A、B和C)中的字符
|
[A-Z]
| 匹配A至Z之间的任一字符
|
A|B
| 匹配A或B
|
(AB)+
| 匹配一个或多个AB的组合,例如:AB、ABAB、ABABAB
|
\*
| 匹配星号本身
|
&
| 用于替代串中,代表查找串中匹配到的内容
|
表-Awk不支持的元字符
元字符
| 说明
|
\<>/
| 单词定位
|
\(\)
| 向前引用
|
\{\}
| 重复
|