我不確定& &運算符是否在正則表達式中工作。我想要做的是匹配一行,使它以一個數字開頭並具有字母'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。 –