Um simples loop [RESOLVIDO]

1. Um simples loop [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 09/09/2009 - 14:02h

Bem estou tentado fazer um loop só que não estou conseguindo.

Acontece que tenho um arquivo com determinado números
Gostaria de comparar número a número com um outro arquivo.

Ai caso tenha no arquivo ele manda uma mensagem

Caso ele não exista no outro arquivo ele emite um comando e um arquivo.

cat teste.txt
for i in teste123.txt; do
echo "este numero já existe"

# se este numero não estive em teste123.txt faca
echo "$i" >> teste123.txt
echo "numero adicionado"

o meu problema está que não vejo como criar uma condição negativa.

Sim isso é decepcionante... pois imagino que seja facil.

Preciso falar que sou iniciante?


  


2. Re: Um simples loop [RESOLVIDO]

Filippe
spolti

(usa Fedora)

Enviado em 09/09/2009 - 14:07h

brother não consegui entender o que seu scrip faz..
explique com mais detalhes, mas pelo que entendi
comaã damdo um cat no teste.txt

esse for tá meio esquisito, e para compara, se é o que to pensando, os números dentro do arquivo 0,1,3,4,5.....

com o da variavel i, seria isso?




3. Re: Um simples loop [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 09/09/2009 - 14:22h

Não entedi esse trecho.
"comaã damdo um cat no teste.txt"

Bem diriamos que o arquivo teste.txt tenha esses valores
1
2
3

No arquivo teste123.txt tenha os valores
1
3
4
5
6
...

O que eu quero é que ele pegue o valor 1 e veja se ele exista no teste123.txt caso ele exista, emite a mensagem arquivo exista.

Ai em seguida ele vai pegar o valor 2 e ver se ele existe.
como no exemplo ele não existe no arquivo teste123.txt então, ele irá adiciona-lo ao arquivo teste123.txt

o resultado do arquivo teste123.txt será
1
2
3
4
5
6
...


melhorou ou piorou?






4. Re: Um simples loop [RESOLVIDO]

Filippe
spolti

(usa Fedora)

Enviado em 09/09/2009 - 15:01h

isso faz exatamente o que você quer
#!/bin/bash
for i in `cat teste.txt`;
do
`echo $i >> teste123.txt`
done

sort -u teste123.txt




quanto a isso : comaã damdo um cat no teste.txt

nem eu lembro mais o que eu tava tentando dizer
auhauhauahau



5. Re: Um simples loop [RESOLVIDO]

Gabriel Bortolotto Contessotto
essemesmo

(usa KUbuntu)

Enviado em 09/09/2009 - 16:35h

Cara agradeco sua resposta e sua real paciencia ... mas acabei fazendo diferente

#!/bin/bash
ARQ1=teste.txt
ARQ2=teste123.txt

for i in `cat $ARQ1`
do
if test $i = `cat $ARQ2 | grep $i` 2> .erro

then
echo "Este Numero ($i) já existe"
else
echo "$i">> $ARQ2
echo "Numero ($i) foi adicionado com sucesso"
fi
done


tive que redirecionar pois quando ele não acha o valor ele dá erro :P
Redirecionei apenas para ficar como teste mais pra frente vou desvia-lo para lugar nenhum..






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts