grep -w / sed / cat ? [RESOLVIDO]

1. grep -w / sed / cat ? [RESOLVIDO]

WILLIAM FELIPE DUTRA ABREU DA SILVA
will_drop

(usa Ubuntu)

Enviado em 02/05/2011 - 09:53h

Bom dia pessoal, tenho uma duvida referente a alguns comandos que nao estou conseguindo utilizar da melhor forma,

tenho um script que verifica se o ip informado ja existe dentro de um arquivo, porem ele esta puxando ips relacionados
fiz o seguinte:

ip(){
clear
echo "Informe o ip completo 192.168.15.XXX"
read ip

if `grep -w "$ip" /tmp/ips.txt` 1>/dev/null 2>/dev/null
then
clear
echo "Adicionando IP $ip ao grupo comercial"
echo "$ip" >> /tmp/ips.txt
cat /tmp/ips.txt | grep "$ip"
echo ""
echo "ip adicionado:"
cat /tmp/ips.txt | grep "$ip"
echo ""
else
clear
echo "Esse ip $ip ja esta nesse grupo "
echo ""
echo $ip
echo ""
echo "Deseja remover o IP do grupo?"
read opcao

if [ $opcao = 'S' ] || [ $opcao = 's' ]
then
sed -i /$ip$/d /tmp/ips.txt
echo "Excluindo $ip do grupo comercial"
echo ""
echo "Ips que ainda estao no grupo comercial"
echo ""
cat /tmp/ips.txt
echo ""
echo "Pressione ENTER para continuar"
read -p ""
grupo_comercial
else
continue
fi


fi

}

porem quando ele pesquisa se o ip estiver ja no arquivo, ele faz o certo encontra o arquivo e blz, so q qndo o ip nao esta no arquivo ele busca os relacionados e diz q o ip ja existe tbm, existe uma forma para q ele veja so o q é para ele ver realmente?



  


2. MELHOR RESPOSTA

Wilker Azevedo
cytron

(usa Slackware)

Enviado em 02/05/2011 - 11:05h

É só um errinho básico:

Erro:

if `grep -w "$ip" /tmp/ips.txt` 1>/dev/null 2>/dev/null

Correto:

if [ "`grep -w "$ip" ips.txt`" ];

E os blocos de execução estão invertidos, veja aqui o script corrigido:

###########################
ip() {
clear
echo "Informe o ip completo 192.168.15.XXX"
read ip

if [ "`grep -w "$ip" ips.txt`" ];
then
clear
echo "Esse ip $ip ja esta nesse grupo "
echo ""
echo $ip
echo ""
echo "Deseja remover o IP do grupo?"
read opcao

if [ $opcao = 'S' ] || [ $opcao = 's' ]
then
sed -i /$ip$/d ips.txt
echo "Excluindo $ip do grupo comercial"
echo ""
echo "Ips que ainda estao no grupo comercial"
echo ""
cat ips.txt
echo ""
echo "Pressione ENTER para continuar"
read -p ""
grupo_comercial
else
continue
fi
else
clear
echo "Adicionando IP $ip ao grupo comercial"
echo "$ip" >> ips.txt
cat ips.txt | grep "$ip"
echo ""
echo "ip adicionado:"
cat ips.txt | grep "$ip"
echo ""


fi
}
###########################

3. Re: grep -w / sed / cat ? [RESOLVIDO]

WILLIAM FELIPE DUTRA ABREU DA SILVA
will_drop

(usa Ubuntu)

Enviado em 02/05/2011 - 12:54h

kra deu certinho

so ajustei mais uma coisa ou outra mas ta funcionando de boa

vlw msm
abraço






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts