テキストファイルの1行をテキストファイルの他の行の前に移動する最速の方法は何ですか?

テキストファイルの1行をテキストファイルの他の行の前に移動する最速の方法は何ですか?

テキストファイルに55行がありますが、同じテキストファイルから23行前に移動したいと思います。行を特定の行の上に移動できることを知っています。12しかし、テキストファイル内の行を上下に移動する冗長な方法の代わりに、ある行を別の行に追加または追加することは可能ですか?

vim、sed、またはその他のコマンドラインツールを使用して回答を受け入れる意思がありますが、簡潔なほど良いです。

修正する:

このsedコマンドはi行の前にテキストを挿入します。これは、行の前に行を挿入したい点を除いて、私が探しているものと似ています。

答え1

スクリプト可能なエディタを使用すると、これは非常に簡単になります!

printf '%s\n' '55m22' 'wq' | ed -s input

これにより、2つのコマンドが次に送信されますed(名前付きファイルの編集input)。

  1. 55m22--ライン22 戻る55行を移動します。
  2. wq- ファイルをディスクに保存して終了します。

答え2

短い:

ex input <<<"55m22|wq"

答え3

vi次より少し長くなりますed

vi input
55Gdd23GPZZ

55G...55行に移動
dd...行を削除
23G...23行に移動
P...削除した行を23行前に貼り付け
ZZ...ファイルに書き込んで終了

関連情報