1

特定のパターンの周りの線を削除するために使用しようとしてed、私は自分の自己ナットを運転してきました。

私がやりたいのは、パターンを一致させてから、その周りの線を削除することです。

私はいくつかのバリエーションを試しました

ed test.txt <<<< $'/pattern/-1,+1d\nwq'
ed test.txt <<<< $'(/pattern/-1,+1)d\nwq'
ed test.txt <<<< $'/pattern/-,+1d\nwq'
ed test.txt <<<< $'(/pattern/-,+1)d\nwq'
ed test.txt <<<< $'/pattern/-,+d\nwq'
ed test.txt <<<< $'(/pattern/-,+)d\nwq'

どれもうまくいきませんでした。それはどのように行われますか?

4

2 に答える 2

2

セミコロンを使用すると、2番目のアドレスを処理する前に;、現在の行を設定します。.これにより、最初のアドレスに対して2番目のアドレスが作成されます。これはほぼ必要なものです。

/pattern/-;+2d

2番目のアドレスは最初のアドレスに相対的であり、パターンに相対的ではないため、パターンの前後の行をアドレス指定するには+2を使用する必要があります。

(これ/pattern/-はの省略形であることに注意してください/pattern/-1

于 2018-05-08T12:49:17.540 に答える
1

私は多くの試行錯誤の末にそれを理解しましたが、これを教えてくれるドキュメントは見つからないようです。各行の参照は個別のパターン一致参照に対して行う必要があるように思われるため、トリックはパターンを2回指定することです。

 ed test.txt <<<< $'/pattern/-,/pattern/+d\nwq'
于 2011-09-15T01:13:56.587 に答える