Shortawkрешение:
awk -F'_' '$0~/^>/{ $0=$0 FS $NF }1' file
Вывод:
>13_gnd_gnd
atcg
>14_galF_galF
atgc
Детали:
-F'_'
- разделитель полей
$0~ /^>/
- выполняет действие, если строка начинается с >
$0=$0 FS $NF
- добавляет в конец последнее значение поля
Цитирование в целом выглядит нормально, но вы, вероятно, столкнулись с проблемами с этой строкой:
export JAVA_HOME=${"C:\Java\"}
Первое использование "
- это не экранирован, а второй -. Символ '\'
действует как escape в сценариях оболочки, изменяя значение следующего символа. Оболочка не может сказать, что у вас может быть предназначен для предоставления обратной косой черты в конце, например, в порту Cygwin или MinGW. Если вы сделали , удвоение каждой из обратных косых черт - способ сделать это.
Что-то, что нужно проверить: будет ли ваша среда выполнения переводить прямые косые черты и обратные косые черты, например, чтобы успокоить базовую систему Windows. Если вы можете, это упрощает работу со сценарием.
Обращение к комментарию, в
export JAVA_HOME=${"C:\Java\"}
$ {
и }
бесполезны. Вы можете сделать то, что необходимо, с помощью только
export JAVA_HOME="C:\\Java\\"
Расширение параметра '$ { и'}
разделитель . В принципе, вы можете выполнить подмена в фигурных скобках, например, для замены косой черты на обратную:
FORWARD_HOME='C:/Java/'
export JAVA_HOME=${FORWARD_HOME//\//\\}
Дополнительная литература:
$ {параметр / шаблон / строка}