用于重复字符的 awk 正则表达式
awk regex for repeated character
我正在尝试匹配字符串中的重复模式。我知道我可以使用 /^[0-9]{5}$/
至少在 perl 中,但这似乎在 awk 或 nawk 中不起作用(没有安装 gawk)。
除 /^[0-9][0-9][0-9][0-9][0-9]$/
之外的任何替代方案?
编辑:
echo "AAB" > test
script.awk:
#!/usr/bin/nawk -f
BEGIN {}
/^A\{2,2\}/ { print "1"; }
/^A/ { print "2"; }
/A\{2,2\}/ { print "3"; }
/A{2,2}/ { print "4"; }
END {}
./script.awk test
仅输出(awk 或 nauk):
2
Solaris 上的默认 awk 是旧的、损坏的 awk,任何人都不应出于任何原因使用它。 nawk 比 /usr/bin/awk 好得多,但仍然是一个非常古老的非 POSIX awk,因此不支持 RE 间隔。几乎任何其他 awk 都可以工作。在 Solaris 上,如果你没有也不能安装 GNU awk,那么使用 /usr/xpg4/bin/awk 因为它非常接近 POSIX 兼容并且支持 RE 间隔。
我正在尝试匹配字符串中的重复模式。我知道我可以使用 /^[0-9]{5}$/
至少在 perl 中,但这似乎在 awk 或 nawk 中不起作用(没有安装 gawk)。
除 /^[0-9][0-9][0-9][0-9][0-9]$/
之外的任何替代方案?
编辑:
echo "AAB" > test
script.awk:
#!/usr/bin/nawk -f
BEGIN {}
/^A\{2,2\}/ { print "1"; }
/^A/ { print "2"; }
/A\{2,2\}/ { print "3"; }
/A{2,2}/ { print "4"; }
END {}
./script.awk test
仅输出(awk 或 nauk):
2
Solaris 上的默认 awk 是旧的、损坏的 awk,任何人都不应出于任何原因使用它。 nawk 比 /usr/bin/awk 好得多,但仍然是一个非常古老的非 POSIX awk,因此不支持 RE 间隔。几乎任何其他 awk 都可以工作。在 Solaris 上,如果你没有也不能安装 GNU awk,那么使用 /usr/xpg4/bin/awk 因为它非常接近 POSIX 兼容并且支持 RE 间隔。