0 votos positivos 0 votos negativos
110 visitas
em Scripts em Bash por interessado (310 pontos)

Oá,

Tenho um arquivo de nome de pessoas, gostaria de delimitar com vírgula, o primeiro nome e o resto do nome. Ou seja substituir o primeiro espaço de cadas linha por vírgula.

Já tentei várias combinações com sed, mas não estou conseguindo, aceito qualquer ajuda.

2 Respostas

0 votos positivos 0 votos negativos
por interessado (310 pontos)
 
Melhor resposta

A quem interessar,

:~$ cat CAD_ORIGINAL
João da Silva
Maria Filipa dos Santos
Luis Carlos Lopes

:~$ awk '{nome=$1; $1=""; print nome","$0; }' CAD_ORIGINAL > CAD_NOVO

:~$ cat CAD_NOVO
João, da Silva
Maria, Filipa dos Santos
Luis, Carlos Lopes

Obs: dica do Blau Araujo.

0 votos positivos 0 votos negativos
por interessado (390 pontos)

Oi Judson,

não sei se entendi bem, veja se este comando te ajuda:

 cat nomes
João da Silva
Maria Filipa dos Santos
Luis Carlos Lopes

sed 's/[ ]/, /' nomes
João, da Silva
Maria, Filipa dos Santos
Luis, Carlos Lopes

sed -E 's/^([A-Za-z]+)[ ](.*)\b([A-Za-z]+)/\3, \1 \2/' nomes

Silva, João da 
Santos, Maria Filipa dos 
Lopes, Luis Carlos `

Seja bem-vindo(a) à comunidade debxp, onde você pode fazer perguntas e receber respostas de outros membros.
Atenção pessoal, esta plataforma não é um fórum, embora se pareça muito com um. Neste tipo de ferramenta, o objetivo é fazer e responder perguntas que possam resultar em material de consulta para outras pessoas que tenham as mesmas dúvidas e dificuldades. Portanto, não há sentido em utilizarmos o Ask para socialização, para emitir opiniões pessoais ou para perguntas do tipo "quem usa isso ou aquilo". Espero que compreendam o nosso propósito. :-)
...