我正在尝试编写一个 grep (或egrep)命令,该命令将查找并打印“words.txt”中连续三次包含相同小写字母的任何行。该字母的三次出现可以连续出现(如“mooo”),也可以由一个或多个空格分隔(如“xx x”),但不由任何其他字符分隔。
Words.txt 包含:
The monster said "grrr"!
He lived in an igloo only in the winter.
He looked like an aardvark.
Run Code Online (Sandbox Code Playgroud)
我认为该命令应该如下所示:
grep -E '\b[^ ]*[[:alpha:]]{3}[^ ]*\b' 'words.txt'
Run Code Online (Sandbox Code Playgroud)
虽然我知道这是错误的,但我对语法了解不够,无法弄清楚。使用 grep,有人可以帮助我吗?
这对你有用吗?
grep '\([[:lower:]]\) *\1 *\1'
Run Code Online (Sandbox Code Playgroud)
它采用小写字符[[:lower:]]并记住它\( ... \)。然后它会尝试匹配任意数量的空格_*(包括 0)、记住的字符\1、任意数量的空格、记住的字符。就是这样。
您可以尝试运行它以--color=auto查看它匹配输入的哪些部分。