我试图在 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
$
(我不确定
mawk
1996 年的 1.3.3 来自哪里,但可能是时候为您的机器获取 awk
的更新版本了。)
关于regex - awk 正则表达式中的花括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15590549/