grep和regex:在未知组合中打印包含N次字符的行

时间:2015-09-29 11:21:12

标签: regex grep

我有一个包含

等字符串的文件
xxxbbxxxbxbx
xxxbxxxxbxxx
xxbxxxbxxbxx
bbbbxxxxxxxx
bxxxxxxxxxxx
xxxxbxxxxxxx
xxxxbbxxbbxx
xxxxbbbbxxxx
xxxxbbbbbxxx

实际上,文件x实际上是各种无趣的字母字符。我想使用grep打印出b发生完全四次的所有行。

如果我使用grep -e "[^b]b[^b]\{0,4\}b[^b]\{0,4\}b[^b]\{0,4\}b[^b]\{1,4\}" test.txt它会排除最后一行(我想要),但也会排除第4行(我不想要),其中该行以b开头。

如果我使用grep -e "b[^b]\{0,4\}b[^b]\{0,4\}b[^b]\{0,4\}b[^b]\{1,4\}" test.txt,它会捕获第4行(我想要的),但最后一行(我不想要)。

2 个答案:

答案 0 :(得分:1)

^(?:[^b]*b){4}[^b]*$

grep -Panchors一起使用。请参阅演示。

https://regex101.com/r/vV1wW6/32

答案 1 :(得分:0)

您可以尝试{{1}}。