Em:
echo '-D__SSE2__ -D__SSE3__ -D__SSSE3__' | awk /SSE/ RS=' ' ORS=' '
Você está alimentando -D__SSE2__ -D__SSE3__ -D__SSSE3__<newline>
a awk
( echo
adiciona a nova linha).
Com RS=' '
, isso significa 3 registros: -D__SSE2__
, -D__SSE3__
e -D__SSSE3__<newline>
. Todas as correspondências /SSE/
são impressas, seguidas pelo separador de registro de saída ( ORS=' '
). Para o terceiro, é -D__SSSE3__<newline><space>
Então, aqui, você quer não gerar o <newline>
em primeiro lugar:
printf %s '-D__SSE2__ -D__SSE3__ -D__SSSE3__' | awk...
Ou adicione um espaço extra, para que o <newline>
esteja em seu próprio registro (que não corresponde a /SSE/
):
echo '-D__SSE2__ -D__SSE3__ -D__SSSE3__ ' | awk...
Ou, como você está usando o GNU awk
em oposição ao Solaris, torne qualquer sequência de espaçamento caractere o separador de registro:
echo -D__SSE2__ -D__SSE3__ -D__SSSE3__ | gawk -v 'RS=[[:space:]]+' ...