0

入力は次のとおりです。

aaa
bbb
ccc
ddd
eee
fff

私は何をしたいですか?"sed "/ccc/,/(eee)/d" のように実行しますが、出力が次のようになるように、"bbb" 行 ("ccc" の前) も削除します。

aaa
fff

何か案は?

4

3 に答える 3

1

これはうまくいくかもしれません(GNU sed):

sed ':a;$!{N;/\nccc/!{P;D};/\neee/!ba;d}' file
于 2012-11-26T23:03:46.580 に答える
0

これは単純な 2 パス アプローチで実行できます。最初のパスで削除する行を特定し、2 番目のパスで削除対象としてマークされていない行のみを出力します。

awk '/ccc/,/eee/{d[NR]=d[NR-1]=1} NR!=FNR && !d[FNR]' file file
于 2012-11-26T14:55:46.353 に答える