小编use*_*164的帖子

带有{} grep和正则表达式的卷曲大括号:为什么它超过最大值?

我已经有一段时间自学shell脚本了,我遇到了关于grep和花括号{}的Linux基础知识手册的这一部分.我的问题是,当我要求使用{}或花括号从最小到最大出现次数搜索字符串模式时,我的结果超出了我指定的最大值.

这是发生了什么:

Express11:~/unix_training/reg_ex # cat reg_file2
ll
lol
lool
loool
loooose
Express11:~/unix_training/reg_ex # grep -E 'o{2,3}' reg_file2
lool
loool
loooose
Express11:~/unix_training/reg_ex #
Run Code Online (Sandbox Code Playgroud)

根据手册,不应该是这样的情况,因为我在这里指定我只查找包含两个连续o到三个连续o的字符串.

编辑:实际上,我不理解花括号如何工作的原因是因为手册的这种简单的解释.我引述:

19.4.10.在n和m次之间这里我们要求从最小2到最多3次.

paul@debian7:~$ cat list2
ll
lol
lool
loool
paul@debian7:~$ grep -E 'o{2,3}' list2
lool
loool
paul@debian7:~$ grep 'o\{2,3\}' list2
lool
loool
paul@debian7:~$ cat list2 | sed 's/o\{2,3\}/A/'
ll
lol
lAl
lAl
paul@debian7:~$
Run Code Online (Sandbox Code Playgroud)

感谢所有回复的人.

regex linux bash grep curly-braces

1
推荐指数
1
解决办法
4090
查看次数

标签 统计

bash ×1

curly-braces ×1

grep ×1

linux ×1

regex ×1