我試圖打印包括第一個匹配在內的所有線條,直到第二個匹配發生在第一個匹配的上方和下方第一場比賽。Awk在第一個圖案和第二個圖案之間打印線條,其中第二個圖案出現在第一個圖案的上方和下方
的文件我已經包含由空行像下面隔開的記錄,
host host1
key1 value
key2 value
key3 value
host host2
key1 value
key2 value
key3 value
key4 value
key5 value
host host3
key1 value
key2 **aaaa**
key3 value
host host3
key1 value
key2 value
比方說,我的搜索模式是「AAAA」。我想在第一個匹配上面打印行,直到空行,並且第一行下面的行與「aaaa」匹配,直到空行。所以搜索應該輸出:
host host3
key1 value
key2 aaaa
key3 value
我不能使用grep,因爲每個記錄將包含不同數量的行。
謝謝你的作品....如果有多於一個匹配,如何在記錄之間添加一個空行? – user6901586
還有一件事我該如何讓RS不區分大小寫? – user6901586
要在輸出記錄之間打印空白行,請添加-v ORS ='\ n \ n''並且由於RS爲空,因此不區分大小寫,因爲不涉及任何情況。 –