grep 行有“CC”但没有更多 C

grep 行有“CC”但没有更多 C

例如,我有以下几行:

CCP2007
CCCP
CCCCPPPPCCC
CCCCCPPPPPCCCCC

我想显示第一个字母,因为该行中CCP2007只有两个字母。C它的命令是什么?

答案1

匹配以该行中CC没有其他字符出现开头的行:C

grep '^CC[^C]*$' file

同样的事情,不要求CC位于行的开头:

grep '^[^C]*CC[^C]*$' file

C并且不考虑该行中的字符总数:

匹配以以下开头CC但不以以下开头的行CCC(例如,CCAC匹配,CCCA被丢弃):

grep '^CC[^C]' file

匹配任意位置重复最大和最小 2 的线C

grep -v 'CCC'| grep 'CC'

答案2

使用 GNU grep 的 PCRE 模式和 perl 风格环顾四周匹配CC前面和后面都没有 的地方C

grep -P '(?<!C)CC(?!C)'

或者伪造与 ERE 模式类似的东西:

grep -E '(^|[^C])CC([^C]|$)'

答案3

为了找到确切包含的行

相关内容