Buscar nome em arquivo [RESOLVIDO]

1. Buscar nome em arquivo [RESOLVIDO]

Gustavo
rs23

(usa Ubuntu)

Enviado em 10/05/2010 - 23:18h

Gostaria de saber como fazer um script para buscar o nome de uma pessoa pelo
sobrenome.
Eu fiz um script que busca apenas pelo nome gostaria que buscasse pelo sobrenome

Nome do arquivo: telefones

Conteudo do arquivo:

Gustavo Torre (11)3121-1212
Rafaela Dias (14)2121-2122

O script abiaxo busca pelo nome e sobrenome.

#!/bin/bash

grep $1 telefones




  


2. MELHOR RESPOSTA

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 12/05/2010 - 21:01h









grep $1 telefones | while read line
do
sobrenome=`echo $line | sed 's/(.*//' | awk '{ print $NF}'`
if [ "$sobrenome" = "$1" ]; then
echo $line
fi
done


3. Re: Buscar nome em arquivo [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 10/05/2010 - 23:26h

Tem várias formas d fazer isso. A primeira (não sei se funfa) é fazer o seguinte:

grep $2 telefones

A segunda forma é:

cat telefones | cut -d'' -f2


4. Re: Buscar nome em arquivo [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 12/05/2010 - 01:34h

# nome
grep -i $1' ' telefones

# sobrenome
grep -i ' '$1' ' telefones

# tanto faz
grep -i $1 telefones


5. Re: Buscar nome em arquivo [RESOLVIDO]

Gustavo
rs23

(usa Ubuntu)

Enviado em 12/05/2010 - 14:09h

renato_pacheco

Fiz do jeito que vc sugeriu e deu erro de execução
digito assim: ./busca.sh "Dias"

E não rodou




6. Re: Buscar nome em arquivo [RESOLVIDO]

Gustavo
rs23

(usa Ubuntu)

Enviado em 27/05/2010 - 13:46h

fdmarp

Não teria uma forma mais fácil de buscar o nome?

Sem usar esta expressão toda?


7. Re: Buscar nome em arquivo [RESOLVIDO]

Bruno Rigolon
kalimbor

(usa Ubuntu)

Enviado em 27/05/2010 - 17:35h

cat telefones | grep SOBRENOME | awk `{ print $1 }`

Vê se essa solução resolve.


8. Sedzin

Marcos Paulo Ferreira
Daemonio

(usa Slackware)

Enviado em 27/05/2010 - 19:54h

kalimbor, acho que o objetivo dele é procurar pelo sobrenome mas no final ter a linha toda como saída. A solução do fdmarp é ideal, pois ela salva a linha em uma variável. Depois compara o sobrenome, e se bater, mostra a variável linha.

Usando o sed:

$ sed -nr 'h;s/.* (.*) .*/\1/;/^SOBRENOME$/{x;p;}' <arquivo>

1) Salva a linha -> h
2) Deixa somente o sobrenome -> s/.* (.*) .*/\1/
3) Procura pelo sobrenome -> /^SOBRENOME$/
Se sucesso: recupera a linha (x) e a mostra (p)


Espero ter ajudado
t+


9. Re: Buscar nome em arquivo [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 27/05/2010 - 19:57h

entao o negocio é que você só quer se o sobrenome for X, ou seja, se o cara chama Fulano da Silva e o outro João Fulano, ao colocar Fulano só apareça o Telefone do João Fulano, certo?

também poderia ser assim ... eu acho (ficou mais simples ... falta ver se funciona:

#---------------------------
awk /"$1 *\("/ telefones
#---------------------------

tenta ai ... depois me fala



10. Re: Buscar nome em arquivo [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 27/05/2010 - 20:00h

Cara ... adorei o lance do sed ... não sabia isso de salvar a linha ... cara ... essa vai pro meu caderno!!! valeu


11. Re: Buscar nome em arquivo [RESOLVIDO]

Gustavo
rs23

(usa Ubuntu)

Enviado em 28/05/2010 - 03:39h

fdmarp

Tentei colocar do jeito que vc falou mas não rodou
Vou deixar a 1º solução que você deixou








12. Re: Buscar nome em arquivo [RESOLVIDO]

Gustavo
rs23

(usa Ubuntu)

Enviado em 28/05/2010 - 03:41h

Tópico resolvido



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts