【发布时间】:2022-01-22 20:23:30
【问题描述】:
{} 运算符有一些问题。在以下示例中,我试图查找出现 1、2 和 2 次或更多单词 mint 的行,但只有在搜索 1 出现 mint 时才会得到响应,甚至虽然每行有超过1。
我正在处理的输入是通过ls -l 命令获得的类似列表:
-rw-r--r-- 1 mint mint 26 Dec 20 21:11 example.txt
-rw-r--r-- 1 mint mint 26 Dec 20 21:11 another.example
-rw-r--r-- 1 mint mint 19 Dec 20 15:11 something.else
-rw-r--r-- 1 mint mint 1 Dec 20 01:23 filemint
-rw-r--r-- 1 mint mint 26 Dec 20 21:11 mint
使用ls -l | grep -E 'mint{1}',我找到了上面的所有行,但我预计什么也找不到(应该是所有出现 1 次mint 的行)。
ls -l | grep -E 'mint{2}' 我什么也没找到,我希望能找到上面的前 3 行(应该是所有出现 2 次 mint 的行)。
对于ls -l | grep -E 'mint{2,}',我希望能找到上面的所有行,但我又什么也没找到(应该是所有行至少出现 2 次 mint)。
我是否遗漏了 {} 的工作原理?
【问题讨论】:
-
请避免posting images of text。最好是转录它们。
-
{}仅适用于左侧的任何内容,在本例中为 字符,即mint{2}匹配mintt。 -
这能回答你的问题吗? Learning Regular Expressions
-
@accdias 我感觉很慷慨,已经开始写答案,所以我将文本编辑到问题中。您认为现在已经足够清晰可以重新开放了吗?