行の文字列位置の変更

行の文字列位置の変更

最初の文字列と最初の文字列>の間の最初の文字列を_最初の文字列の後の2番目の位置に移動したいと思います。_

これを変更する方法は次のとおりです。

>10E13JB10_Vacares_8__a1
blablabla
>10E13JB10_Vacares_8__a2
blablabla
>10E2JB10_Mulhacen_13__a1
blablabla

以下を入力してください:

>Vacares_10E13JB10_8__a1
blablabla
>Vacares_10E13JB10_8__a2
blablabla
>Mulhacen_10E2JB10_13__a1
blablabla

ベストアンサー1

sed -e 's/^>\([^_]*\)_\([^_]*\)/>\2_\1/' -i file

で終わる最初の2つの文字列を見つけて、_置換の順序を逆に置き換えます。最初の2つの文字列とのみ一致するため、行の残りの部分は変更も削除もされません。

  • s/aaa/bbb/- 置換を実行して、次の項目をすべて置き換えますaaabbb
  • ^- 行の始まり
  • \(...\)-キャプチャグループ、一致する文字列を次のように保存します\1\2
  • [^_]*-ㅏキャラクタークラス以下を除くすべての文字と一致します。_

おすすめ記事