刪除我想刪除模式的所有多OCCURENCES像SED多用模式
{START-TAG
foo bar
ID: 111
foo bar
END-TAG}
{START-TAG
foo bar
ID: 222
foo bar
END-TAG}
{START-TAG
foo bar
ID: 333
foo bar
END-TAG}
我想刪除START-TAG和包含特定的ID結束標籤之間的所有部分。
所以刪除ID:222只,這將依然存在:
{START-TAG
foo bar 2
ID: 111
foo bar 3
END-TAG}
{START-TAG
foo bar 2
ID: 333
foo bar 3
END-TAG}
我應該刪除ID的黑名單。
我假設一個非常簡單的多行sed正則表達式腳本會這樣做。誰能幫忙?
這與問題:sed multiline replace非常相似,但不完全相同。
很難用'sed',因爲'ID'是在節中段被刪除。使用'awk'更容易。 –
@MichaelVehrs不太困難'sed'/ {START-TAG/{:1;/END-TAG} /!{N; b1};/ID:* 222/d}''? – 123
@ 123當然是意見的問題。我發現'sed'分支太滑無法處理。而且它肯定比'awk -v RS =「」'!/ ID:222 /''更困難。 –