Sim, sim. Só não é implícito. O formato é realmente:
/foo/{something}
Qual é o mesmo que
if(/foo/){something}
Em outras palavras, se a linha atual corresponder a foo
(no seu exemplo, se corresponder a >
), imprima uma nova linha, a linha atual e outra nova linha.
O next
garante que, se o primeiro bloco for executado, o script pula o restante dos blocos e passa para a próxima linha. O oneliner também pode ser escrito assim:
awk '{
if(/^>/){
printf("\n%s\n",$0);
}
else{
printf("%s",$0);
}
END {
printf("\n");
}' < file.fa
Por fim, como a simples chamada print
de awk
adiciona uma nova linha, você pode usar uma versão um pouco mais simples:
awk '/^>/{print "\n"$0;next;}{printf("%s",$0);} END{print}' file.fa