我正在尝试使用awk
中的花括号来匹配固定数量的数字,但我没有得到任何结果。
# This outputs nothing
echo "123" | awk '/^[0-9]{3}$/ {print $1;}'
# This outputs 123
echo "123" | awk '/^[0-9]+$/ {print $1;}'
我是否需要做一些特定的事情来使用花括号?
答案 0 :(得分:9)
Mac OS X awk
(BSD awk
)使用显示的第一个命令:
$ echo "123" | /usr/bin/awk '/^[0-9]{3}$/ {print $1;}'
123
$
GNU awk
没有。添加反斜杠对GNU awk
没有帮助。使用选项--re-interval
可以,使用--posix
也是如此。
$ echo "123" | /usr/gnu/bin/awk --re-interval '/^[0-9]{3}$/ {print $1;}'
123
$ echo "123" | /usr/gnu/bin/awk --posix '/^[0-9]{3}$/ {print $1;}'
123
$
(我不确定1996年的mawk
1.3.3来自哪里,但现在可能是时候为你的机器获得awk
的更新版本了。)