編輯:在此之前沒有提到的是在OS X中執行如何從文件中刪除文本塊
我試圖創建一個bash腳本將從一個文件中刪除一些塊和保存結果到另一個。
該文件的內容我想過濾應該是這樣的:
<element>
<subElement name="leaveme"/>
<subElement name="leaveme"/>
<subElement name="leaveme"/>
</element>
<element>
<subElement name="removeme"/>
<subElement name="removeme"/>
<subElement name="removeme"/>
</element>
<element>
<subElement name="leaveme"/>
<subElement name="leaveme"/>
<subElement name="leaveme"/>
</element>
我想刪除是包括<element></element>
標籤包含的子元素<subElement name="removeme"/>
它保證沒有組將有組「removeme」和「leaveme」元素混合在一起。
我知道如何使用正則表達式這樣做:
<element>(?:(?!/elem).)*"removeme".*?</element>
但我真的失去了如何做一個shell腳本,發現了約sed的一些信息,但並不瞭解如何實現這一點。
謝謝。
'sed'對於這項任務並不是很好。試試'awk'。看看Jotne的答案(或者可能是我的)[這裏](http://stackoverflow.com/questions/24814783/extract-multiple-lines-on-either-end-of-pattern-which-are-closed-by -an-IDENTIF/24815006?noredirect = 1個#comment38527405_24815006)。它基本上與你想要的相反,但你應該能夠適應它。 – ooga
我確實看過它,但它只是使用一些分隔符來定義刪除的內容,我需要知道內容是否包含特定文本以確定是否刪除它,是否可以適應它? – Gusman
它使用兩個分隔符(比如你的''標籤)和內容。我認爲這很容易適應。我會嘗試一下,讓它知道它是否適用,但我認爲是。 –
ooga