Удалить строки до и после совпадения в bash (с sed или awk )?

Я пытаюсь удалить две строки по обе стороны от совпадения с образцом из файла, полного транзакций. Т.е. найдите совпадение, затем удалите две строки перед ним, затем удалите две строки после него, а затем удалите совпадение. Запишите это обратно в исходный файл.

Таким образом, входные данные

D28/10/2011
T-3.48
PINITIAL BALANCE
M
^

и мой образец

sed -i '/PINITIAL BALANCE/,+2d' test.txt

Однако это удаление только двух строк после совпадения с шаблоном, а затем удаление совпадения с шаблоном. Я не могу придумать никакого логического способа удалить все 5 строк данных из исходного файла с помощью sed.

7
задан Kent 3 August 2012 в 10:55
поделиться