shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Pegar somente o nome completo


From: Paulo Bettega
Subject: Re: [shell-script] Pegar somente o nome completo
Date: Sat, 22 Mar 2014 22:33:12 -0300
User-agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

Olá Junior , pensei nessa solução
grep -Eo '([[:alpha:]]+ )+' banco
mas isso imprime o espaço depois do último nome.

Com esse sed os nomes saem sem espaço depois.
sed -r 's/[0-9]{3} (([[:alpha:]]+ )+).*/\1/; s/ $//' banco

Ficaria mais simples usar o cut se o separador de campos fosse
outro caracter que não o espaço, por exemplo tab ou :

Abraços Paulo Bettega


On 22-03-2014 20:30, address@hidden wrote:
Olá Pessoal,

Como criar um script que mostre somente o nome completo. O script está criado, 
mas gostaria de saber
se é possível melhorar o comando para pegar o nome da pessoa, pois eu utilizei 
os comandos echo e
cut, respectivamente. Gostaria de saber se é possível a utilização de apenas um 
comando, sei lá sed,
echo ou awk. Eu consigo dizer ao script para pegar entre o primeiro espaço até 
o último espaço?
Segue exemplo do arquivo:

Arquivo: banco
101 Fulano de Tal Habilitado-01/01/1970
102 Donald Fauntleroy Duck 09/06/1934
103 Patinhas McPato 12/04/1867
104 Mickey Mouse 18/11/1928
105 Dippy Dawg 25/05/1932

Abaixo o script criado:

#!/bin/bash
cat banco | while read LINHA
do
     NOME="`echo ${LINHA% *} | cut -d" " -f2-`"
echo "$NOME"
done

Saída:
Fulano de Tal
Donald Fauntleroy Duck
Patinhas McPato
Mickey Mouse
Dippy Dawg

Um forte abraço a todos,
Junior Reis
//



reply via email to

[Prev in Thread] Current Thread [Next in Thread]