Pindahkan karakter antara dua string ke akhir baris

0

Saya perlu memindahkan (dalam file teks) semua karakter antara ">" hingga dan termasuk "_" ke akhir baris itu.

Dari ini:

[[[>AVA_M427014_
MAKNISRTAQMRVAIEEL

>AVB_L427D15_
MSGATSRTGNLRKEIEELVLT

>GVB_F83R906_
MAKIRANIPELLCAGVT

s004
5039.1
40403

untuk ini:

[[[>M427014_AVA_
MAKNISRTAQMRVAIEEL

>L427D15_AVB_
MSGATSRTGNLRKEIEELVLT

>F83R906_GVB_
MAKIRANIPELLCAGVT

s004
5039.1
40403
Mila8080
sumber

Jawaban:

0
sed 's/>\([^_]*_\)\(.*\)$/>\2\1/' file
#    s/                  /     / search and replace
#                                search for
#      >                         literal >
#       \(      \)\(  \)         two blocks
#         [^_]*                  anything but _, zero or more characters
#              _                 literal _
#                   .*           zero or more characters
#                       $        end of line
#                                replace with
#                         >      literal >
#                          \2\1  the second block, then the first block

Gunakan sed -iuntuk mengedit file di tempat.

Kamil Maciorowski
sumber