使用GREP检测重复的字符



我正在尝试编写一个grep(或egrep)命令,该命令将在" words.txt"中查找并打印任何行,该行包含相同的下案字母,三次。字母的三个出现可能会连续出现(如" mooo")或被一个或多个空间(如" x x x"中)隔开,但不会被任何其他字符隔开。

words.txt包含:

The monster said "grrr"!
He lived in an igloo only in the winter.
He looked like an aardvark.

这是我认为命令的样子:

grep -E 'b[^ ]*[[:alpha:]]{3}[^ ]*b' 'words.txt'

尽管我知道这是错误的,但是我对语法不足以弄清楚。使用GREP,有人可以帮我吗?

此功能适合您?

grep '([[:lower:]]) *1 *1'

它采用小写字符[[:lower:]]并记住它( ... )。它试图匹配任何数量的空间_*(包括0),记住字符1,任何数量的空格,记忆字符。就是这样。

您可以尝试使用--color=auto运行它,以查看其匹配的输入的哪些部分。

尝试一下。请注意,这将不匹配" mooo",因为" b"一词发生在" m"。

之前

grep -E 'b([[:alpha:]]) *1 *1 *b' words.txt

[:alpha:]是字符类的表达式。要用作正则char集,它需要额外的括号。您可能已经知道了这一点,因为看起来您开始这样做,但是将开放式括号未锁定。

相关内容

  • 没有找到相关文章

最新更新