sedを使用して行を別の場所に移動するには?

sedを使用して行を別の場所に移動するには?

sedを使用して行を別の場所に移動するには?

次のファイルを想像してみてください。

ligne
ligne
toto
tutu
titi

取得したい:

ligne
toto
tutu
titi
ligne 

既知のパターンは「tutu」で、ターゲット行番号は「2」で、移動したいテキストブロックの開始行番号もあります。

それで、すでに知っている特定の位置(2行目)にコピーしたいのです(最初の1行と連続1行)。

私は試した:

sed '2,5{ H ;d ; } ;  2{ p ; x ; }' file

ただし、「貼り付け」部分は機能しないため、次のように表示されます。

ligne

私は数値行にバッファを貼り付ける方法を本当に理解していません。

ベストアンサー1

わかりました、書かれたとおりです。

$ sed -n '1p; 2h; 3,/tutu/N; /tutu/ N; ${G; p;}' file
ligne
toto
tutu
titi
ligne

おすすめ記事