単一のコマンドでedの特定の行番号を削除する

単一のコマンドでedの特定の行番号を削除する

に示すように、ed行番号のアドレスとコマンドを順番に入力すると、行番号を削除できます。行範囲を削除するには、などのカンマを使用できます。のように、特定の内容を含む行を削除することもできます。連続していない行を削除するように指定する方法はありますか?delete1d1,4dg/Ted/d単一コマンドで?つまり、次を入力せずに行1、3、8を一度に削除するとします。

1d
3d
8d

答え1

いいえed(1960年代の編集者)、いいえ。ただし、ex(70年代以上)またはむしろ(90年代)のvim実装に移行する準備ができている場合は、次のことができます。ex

g/\v%1l|%3l|%8l/d

どこ\%nl(withで簡略化)は、現在の行の位置に一致する正規表現演算子です。%nl\vN仕事

1d、、、を順次実行する方法を使用すると、元の3行目が23d行目になり、最終的に1、4、10が削除されます。最後から始めると、このような問題は発生しません:、、、。8d1d8d3d1d

関連情報