我试图在awk中使用花括号匹配固定数量的数字但我得不到结果.
# This outputs nothing echo "123" | awk '/^[0-9]{3}$/ {print $1;}' # This outputs 123 echo "123" | awk '/^[0-9]+$/ {print $1;}'
我是否需要做一些特定的事情来使用花括号?
解决方法
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年的1.3.3 mawk来自哪里,但现在可能是时候为你的机器获得awk的更新版本.)