我不确定& &运算符是否在正则表达式中工作。我想要做的是匹配一行,使它以一个数字开头并具有字母'a',并且下一行以数字开头并具有字母'b'和下一行...字母'c' 。这个abc序列将被用作开始读取文件的唯一标识符。在AWK中匹配多行的正则表达式。 &&运算符?
下面是我在awk中想要的。
/(^[0-9]+ .*a)&&\n(^[0-9]+ .*b)&&\n(^[0-9]+ .*c) {
print $0
}
这些正则表达式的作品一样只是一个(^ [0-9] +。* A),但我不知道如何把它们串起来与下一行是这样的。
我的文件将是这样的:
JUNK UP HERE NOT STARTING WITH NUMBER
1 a 0.110 0.069
2 a 0.062 0.088
3 a 0.062 0.121
4 b 0.062 0.121
5 c 0.032 0.100
6 d 0.032 0.100
7 e 0.032 0.100
而我想要的是:
3 a 0.062 0.121
4 b 0.062 0.121
5 c 0.032 0.100
6 d 0.032 0.100
7 e 0.032 0.100
对于你的情况,因为你的“条款”(要三个条件,共同)不重叠,你真的不需要任何操作可言,只是“吃掉”的剩下的按照@ m.buettner的建议行事。在条件_do_重叠的情况下,比如如果你想检查一行包含符号和数字(但你不知道顺序),那么你会使用所谓的“前瞻断言”来实现这种匹配。 –
我只知道前瞻断言是python中的next()函数。我试图在下面的答案。 – chimpsarehungry
我对Python并不熟悉,但是我正在谈论的是前瞻和lookbehind构造,我知道它支持Python:http://www.regular-expressions.info/lookaround.html。 –