私は2つのパターンの間でテキストを除外しようとしています.12の例を見てきましたが、私が望むものを正確に得ることができませんでした:
サンプル入力:
START LEAVEMEBE text
data
START DELETEME text
data
more data
even more
START LEAVEMEBE text
data
more data
START DELETEME text
data
more
SOMETHING that doesn't start with START
@ sometimes it starts with characters that needs to be escaped...
私は一緒にいたい:
START LEAVEMEBE text
data
START LEAVEMEBE text
data
more data
SOMETHING that doesn't start with START
@ sometimes it starts with characters that needs to be escaped...
私はsedを実行しようとしました:
sed 's/^START DELETEME/,/^[^ ]/d'
そして、包括的な削除を取得したので、「除外」を追加してみました (この構文を本当によく理解しているかどうかはわかりません):
sed 's/^START DELETEME/,/^[^ ]/{/^[^ ]/!d}'
しかし、私の「START DELETEME」行はまだそこにあります (はい、grep できますが、それは見苦しいです :) 加えて、このサンプルの空の行も削除します。私の終了パターンはそのままです)単一のsedコマンドでそれを行う方法があるかどうか疑問に思っています。これをうまく行う awk スクリプトがあります。
BEGIN { flag = 0 }
{
if ($0 ~ "^START DELETEME")
flag=1
else if ($0 !~ "^ ")
flag=0
if (flag != 1)
print $0
}
しかし、ご存知のように、「A はカタツムリのように実行される awk です」。それは永遠にかかります。
前もって感謝します。デイブ。