我試圖使用sed
從文件中刪除塊代碼。要刪除的塊在文件中出現多次,並且還跨越多行。此外,該塊中有不同的內容,但有明確的開始和結束的描述。使用sed來查找並替換多行代碼
我已經嘗試了很多方法來獲得這個工作,並且遇到了懶惰在sed
中工作的問題,並跨線匹配。
這裏是什麼,我試圖做一個例子:
good stuff a
good stuff same line START
bad stuff 1.0
bad stuff 1.1
END
good stuff b
good stuff b
good stuff same line START bad stuff 2.0
bad stuff 2.0
END
good stuff c
變爲:
good stuff a
good stuff same line
good stuff b
good stuff b
good stuff same line
good stuff c
這裏有一些方法,到目前爲止我都試過了。
sed -n '1h;1!H;${;g;s/START.*END//mg;p;}' <test> test2
獲得跨線工作。
sed -n 's/START[^END]*END//g' <test> test2
只有否定E或N或D.
sed -n 's/START.*?END//g' <test> test2
不懶惰行爲。
謝謝。
什麼是「懶惰」? –