我已经有一段时间自学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次.
Run Code Online (Sandbox Code Playgroud)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:~$
感谢所有回复的人.