对于awk而言,正则表达式是置于两个正斜杠之间(‘’)、由字符组成的模式。Awk支持使用正则表达式元字符对正则表达式进行某种方式修改。如果输入行中的某个字符串与正则表达式相匹配,则最终条件为真,于是执行与该表达式关联的所有操作。如果没有指定操作,则打印与正则表达式匹配的记录
元字符 | 说明 |
^ | 在串首匹配 |
$ | 在串尾匹配 |
. | 匹配单个任意字符 |
* | 匹配零个或多个前导字符 |
+ | 匹配一个或多个前导字符 |
? | 匹配零个或一个前导字符 |
|(A|B) | 指定如果以 |(垂直线)隔开的字符串的任何一个在字符串中,则字符串匹配,匹配A或B |
[ABC] | 匹配指定字符组(即A、B和C)中任一字符 |
[^ABC] | 匹配任何一个不在指定字符组(即A、B和C)中的字符 |
[A-Z] | 匹配A至Z之间的任一字符 |
(AB)+ | 将字符串组合在一起,匹配一个或多个AB的组合,例如:AB、ABAB |
~,!~ | 表示指定变量与正则表达式匹配(代字号)或不匹配(代字号、感叹号)的条件语句 |
{m, n} | 指定如果 m 和 n 之间(包含的 m 和 n)个模式的具体值在字符串中(其中m<= n),则字符串匹配 |
\ | 转义字符。位于正则表达式中具有特殊含义的任何字符之前时,转义字符除去其任何特殊含义 |
& | 用于替代串中,代表查找串中匹配到的内容 |
表-Awk的正则表达式元字符
元字符 | 说明 |
\<>/ | 单词定位 |
\(\) | 向前引用 |
\{\} | 重复 |