我是第一次使用 grep,在阅读手册后,我决定使用 [:digit:] 而不是 \d 或 [0-9] 来匹配数字。我发现在grep中,实际上是[[:digit:]]匹配数字。虽然我设法理解为什么有双括号,但我无法找到匹配多个整数的方法。
echo 'i100s'|grep -o '[[:digit:]]'
Run Code Online (Sandbox Code Playgroud)
将打印(如预期):
1
0
0
Run Code Online (Sandbox Code Playgroud)
但如果我尝试
echo 'i100s'|grep -o '[[:digit:]]+'
Run Code Online (Sandbox Code Playgroud)
或者
echo 'i100s'|grep -o '[[:digit:]]{0,3}'
Run Code Online (Sandbox Code Playgroud)
或者
echo 'i100s'|grep -o '[[:digit:]]\+'
echo 'i100s'|grep -o '[[:digit:]]\{0,3\}'
Run Code Online (Sandbox Code Playgroud)
它将无法匹配任何内容。为什么?
grep ×1