该行的每个第7个字符必须是+

时间:2012-11-01 00:10:59

标签: regex bash grep

问题如下: 我有一个名为brain.txt的文档,其中包含如下字符:

++++++++++[>++++++++>++++++>+<<<-]>+++.>+++++.<-.+.>>. word

最后的word可以是任何单词。 如何过滤每个第7个字符加上文档的行? 例如:+......+......+......+..... word

我写了以下命令:

egrep '^\+(.{6}\+)+.{,6}\s' brain.txt

但它似乎没有用,有人能解释一下这个命令的错误吗?

1 个答案:

答案 0 :(得分:1)

问题是速记符号{,6},它似乎不适用于给定的正则表达式风格。简单地写出来:

egrep '^\+(.{6}\+)+.{0,6}\s' brain.txt

请注意,这需要至少2 + s。单个\+在开头,另一个在子模式中(因为它至少重复一次)。如果+.... word对您有效,请使用:

egrep '^\+(.{6}\+)*.{0,6}\s' brain.txt