我有一個看起來像一個文件:如何刪除符合模式的行和使用sed後面的行?
good text
good text
FLAG bad text
bad text
good text
good text
good test
bad Text FLAG bad text
bad text
good text
我需要刪除含有「標誌」 和我總是需要刪除緊隨「FLAG」太行的一個線路的任何線路。
「標記」行不規則,我不能依賴任何行號策略。
任何人都知道如何用sed做到這一點?
我有一個看起來像一個文件:如何刪除符合模式的行和使用sed後面的行?
good text
good text
FLAG bad text
bad text
good text
good text
good test
bad Text FLAG bad text
bad text
good text
我需要刪除含有「標誌」 和我總是需要刪除緊隨「FLAG」太行的一個線路的任何線路。
「標記」行不規則,我不能依賴任何行號策略。
任何人都知道如何用sed做到這一點?
使用的GNU
版本的sed擴展:
sed -e '/FLAG/,+1 d' infile
它產生:
good text
good text
good text
good text
good test
good text
這工作,並且不依賴於任何擴展:
sed '/FLAG/{N
d
}' infile
N
將下一行讀入模式空間,然後d
刪除模式空間。
非常感謝。希望我能在這裏接受兩個答案。給你一個upvote。 –
這裏是awk
一個辦法:
awk '/FLAG/{f=1;next}f{f=0;next}1' file
或
awk '/FLAG/{getline;next}1' file
完美。我正在嘗試類似的東西,但無法正確猜測語法。謝謝! –