Предположим, многострочный текстовый файл с двумя чередующимися типами строк. Первая строка начинается с «>» и содержит буквенно-цифровые строки, разделенные подчеркиванием. Вторая строка состоит из одной буквенно-цифровой строки.
$ cat file
>foo_bar_baz1
abcdefghijklmnopqrstuvwxyz0123456789
>foo_bar_baz2
abcdefghijklmnopqrstuvwxyz0123456789
>foo_bar_baz3
abcdefghijklmnopqrstuvwxyz0123456789
Я бы хотел изменить порядок слов в этих строках, начиная с ">".
$ cat file | sought_command
>baz1_foo_bar
abcdefghijklmnopqrstuvwxyz0123456789
>baz2_foo_bar
abcdefghijklmnopqrstuvwxyz0123456789
>baz3_foo_bar
abcdefghijklmnopqrstuvwxyz0123456789
Я понимаю, что эту задачу можно выполнить с помощью awk .
Как мне нужно изменить приведенный ниже черновик awk код для достижения моей цели? В текущем виде приведенный ниже код печатает только строки, начинающиеся с «>», но не строки без них.
awk -F'_' '$1 ~ /^>/ { print ">"$3"_"$1"_"$2}' file | sed 's/>foo/foo/'
>baz1_foo_bar
>baz2_foo_bar
>baz3_foo_bar