2012-11-01 56 views
1

的问题如下: 我有一个名为brain.txt与字符的线条像这样的文件:行的每一个第7个字符必须是一个+

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

word末才能真正无论如何。 如何过滤文档中每7个字符为加号的行? 例如:+......+......+......+..... word

我写了下面的命令:

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

但它似乎没有工作,任何人都可以给我解释一下什么是不正确有关此命令吗?

+1

究竟是什么不起作用? –

+0

您列出的正则表达式[将正确捕获](http://rubular.com/r/pxBsVORD2G)您输入的行。问题是什么? – ean5533

+0

这个问题不再有意义,因为它的错误是*修正*在编辑.. – antak

回答

1

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

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

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

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

谢谢,这确实是问题。我认为这工作在egrep虽然.. – jvermeulen

+0

@ user1790040啊好吧,不能知道这一点;) –

相关问题