首先举个几个例子。
1、用awk匹配出filename指定的文件中带有sun的行:
- 在命令行中是: awk '/sun/ {print $0}' filename
-
-
编写awk脚本为:
-
-
#!/usr/bin/awk -f
-
-
BEGIN{
-
-
}
-
-
{
-
-
if($num~/sun/) //$num中的num是0~9,~表示匹配
-
-
{
-
-
print $0
-
-
}
-
-
}
-
-
END{
-
-
}
-
-
-
-
awk的常规表达式元字符:
-
-
^ 表示在文件中的行首进行匹配。 例如:/^sun/表示模式匹配以sun开头的行。
-
-
$ 表示在文件中的行尾进行匹配。 例如:/sun$/表示模式匹配以sun结尾的行。
-
-
. 表示与任何单个字符串匹配。 注意:是单个字符串。
-
-
[ABC] 表示与[]内的任意一字符匹配。 例如:/[Mm]oon/表示模式匹配包含Moon或moon的行。
-
-
[A-Ca-c] 表示与A-C及a-c范围内的单个字符匹配。 例如:/^[a-b][c-d][e-f]/表示开始第一个字符是a或b,第二个字符是c或d,第三个字符是e或f。同样的道理,/[a-b][c-d][e-f]$/表示从记录的后面开始匹配。
-
-
Desk|Chair 表示与Desk和Chair中的任意一个匹配。
-
-
-
-
注意:
-
-
[^ABC] 与除[ ]内的所有字符以外的任一字符匹配。
-
-
-
-
[ABC]* 表示与A、B、C中任意一个出现0次或多次的字符相匹配。
-
-
[ABC]+ 表示与A、B、C中任意一个出现1次或多次的字符相匹配。