Sed
如何在包括它們在內的兩種模式之間選擇第一次出現
如何在包括它們在內的兩種模式之間選擇第一次出現。最好使用
sed
或awk
。我有:
text something P1 something content1 content2 something P2 something text something P1 something content3 content4 something P2 something text
我想要第一次出現 P1 和 P2 之間的線(包括 P1 線和 P2 線):
something P1 something content1 content2 something P2 something
sed '/P1/,/P2/!d;/P2/q'
…將通過
d
刪除所有!
不在範圍內的行來完成這項工作,然後q
在它第一次遇到範圍的末尾時進行調整。P2 在 P1 之前它不會失敗,並且它不需要 GNU 特定的語法來簡單地編寫。
和
awk
awk '/P1/{a=1};a;/P2/{exit}' file something P1 something content1 content2 something P2 something