GNU awk是否接受在正则表达式中使用花括号指定的间隔?

VeryHardCoder

awk可以识别哪些类型的正则表达式?这个命令

echo "aa" | gawk '/a{2,3}/ {print}'

不返回任何东西,而

echo "a{2,3}" | gawk '/a{2,3}/ {print}'

返回a{2,3}

既然可以识别其他扩展的正则表达式功能(例如交替),那么在哪里可以找到精确的参考?GNUfind手册中有关awk正则表达式的部分中,应接受上述语法,因为:

间隔由“ {”和“}”指定。

muru

手册

最初,由于旧程序可能在正则表达式常量中使用'{'和'}',因此gawk与正则表达式中的间隔表达式不匹配。

但是,从版本4.0开始,gawk会默认匹配间隔表达式。这是因为对于大多数gawk用户而言,与POSIX的兼容性比与旧程序的兼容性更为重要。

由于Ubuntu 12.04具有GNU awk 3.1.8,而14.04具有4.0.1,因此您必须使用12.04(或另一个这样的旧版本)。


设置POSIXLY_CORRECTPOSIX行为:

$ echo "a{2,3}" | POSIXLY_CORRECT=1 gawk '/a{2,3}/ {print}'
$ echo "aa" | POSIXLY_CORRECT=1 gawk '/a{2,3}/ {print}'
aa

或者,-r如果要保留GNU扩展并使用间隔表达式,请使用该选项:

-r
--re-interval

在正则表达式中允许间隔表达式(请参阅正则表达式运算符)。现在,这是gawk的默认行为。不过,该选项仍然存在(既可以向后兼容,也可以与结合使用--traditional)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在GNU grep正则表达式中使用引号

来自分类Dev

可以在GNU find命令中使用正则表达式捕获组?

来自分类Dev

用于匹配 gnu r 中的括号对的递归正则表达式

来自分类Dev

强类型正则表达式常量在GNU Awk中如何工作?

来自分类Dev

GNU Flex正则表达式为负数

来自分类Dev

将Perl兼容的正则表达式与GNU grep -P一起使用

来自分类Dev

GNU sed中是否还有另一个正则表达式“味道”?

来自分类Dev

GNU APL中的花括号

来自分类Dev

如何设置gnu find使用posix扩展的正则表达式类型作为默认值

来自分类Dev

如何提取捕获的Gnu emacs正则表达式(regexp)组以插入其他位置?

来自分类Dev

std = c ++ 11和std = gnu ++ 11之间的C ++标准正则表达式差异

来自分类Dev

在GNU Parallel中结合替换字符串和正则表达式

来自分类Dev

GNU Parallel-为m个正则表达式提取n行

来自分类Dev

GNU或BSD Sed中的正则表达式交替/或运算符(foo | bar)

来自分类Dev

无法获取GNU grep 2.12来处理正则表达式中的LF字符

来自分类Dev

GNU是否与for循环并行?

来自分类Dev

如何检查一个字符串在GNU正则表达式中是否包含几个字符?

来自分类Dev

使用MIT / GNU方案

来自分类Dev

如何使用GNU Parallel

来自分类Dev

(g)awk: 在 system() 中使用 GNU 的日期

来自分类Dev

Gnu sed 正则表达式扩展,如何输入这两个字符?

来自分类Dev

GNU grep&find -regex:为什么。正则表达式中需要的,为什么我不能使用POSIX字符类?

来自分类Dev

在管道中使用GNU并行

来自分类Dev

Perl在正则表达式中的花括号

来自分类Dev

正则表达式省略花括号

来自分类Dev

正则表达式在花括号周围分裂

来自分类Dev

正则表达式替换花括号内的点?

来自分类Dev

Perl在正则表达式中的花括号

来自分类Dev

正则表达式花括号无法正常工作

Related 相关文章

  1. 1

    在GNU grep正则表达式中使用引号

  2. 2

    可以在GNU find命令中使用正则表达式捕获组?

  3. 3

    用于匹配 gnu r 中的括号对的递归正则表达式

  4. 4

    强类型正则表达式常量在GNU Awk中如何工作?

  5. 5

    GNU Flex正则表达式为负数

  6. 6

    将Perl兼容的正则表达式与GNU grep -P一起使用

  7. 7

    GNU sed中是否还有另一个正则表达式“味道”?

  8. 8

    GNU APL中的花括号

  9. 9

    如何设置gnu find使用posix扩展的正则表达式类型作为默认值

  10. 10

    如何提取捕获的Gnu emacs正则表达式(regexp)组以插入其他位置?

  11. 11

    std = c ++ 11和std = gnu ++ 11之间的C ++标准正则表达式差异

  12. 12

    在GNU Parallel中结合替换字符串和正则表达式

  13. 13

    GNU Parallel-为m个正则表达式提取n行

  14. 14

    GNU或BSD Sed中的正则表达式交替/或运算符(foo | bar)

  15. 15

    无法获取GNU grep 2.12来处理正则表达式中的LF字符

  16. 16

    GNU是否与for循环并行?

  17. 17

    如何检查一个字符串在GNU正则表达式中是否包含几个字符?

  18. 18

    使用MIT / GNU方案

  19. 19

    如何使用GNU Parallel

  20. 20

    (g)awk: 在 system() 中使用 GNU 的日期

  21. 21

    Gnu sed 正则表达式扩展,如何输入这两个字符?

  22. 22

    GNU grep&find -regex:为什么。正则表达式中需要的,为什么我不能使用POSIX字符类?

  23. 23

    在管道中使用GNU并行

  24. 24

    Perl在正则表达式中的花括号

  25. 25

    正则表达式省略花括号

  26. 26

    正则表达式在花括号周围分裂

  27. 27

    正则表达式替换花括号内的点?

  28. 28

    Perl在正则表达式中的花括号

  29. 29

    正则表达式花括号无法正常工作

热门标签

归档