7

我正在尝试使用花括号匹配固定数量的数字,awk但没有得到任何结果。

# This outputs nothing
echo "123" | awk '/^[0-9]{3}$/ {print $1;}' 

# This outputs 123
echo "123" | awk '/^[0-9]+$/ {print $1;}' 

我需要做一些特定的事情来使用花括号吗?

4

1 回答 1

10

Mac OS X awk(BSD awk) 使用显示的第一个命令:

$ echo "123" | /usr/bin/awk '/^[0-9]{3}$/ {print $1;}' 
123
$

GNUawk没有。添加反斜杠对 GNU 没有帮助awk。using option--re-interval确实如此, using 也是如此--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
$

(我不确定mawk1996 年的 1.3.3 来自哪里,但可能是时候awk为您的机器获取更新版本了。)

于 2013-03-23T18:40:26.867 回答