Comparando Strings

1. Comparando Strings

Marcelo F. Molina
molina

(usa Debian)

Enviado em 17/09/2010 - 13:55h

Pessoal, estou com dificuldades pra resolver um problema que eu consideraria simples em outras linguagens de programação. É que preciso ler um arquivo de textos (txt), extrair cada palavra e verificar se existe a extensão, por exemplo, "app". Se houver essa extensão, então, eu preciso fazer alguma coisa, ex. imprimir. Já tentei de diversas formas e simplesmente ainda não consegui o resultado que eu gostaria. O script que fiz está logo abaixo:


for line in $(cat /tftpboot/autoconfig/output/dir.txt); do
arq=$(echo $line | cut -d "." -f 2)
arq2="app"

if [ "$arq" == "$arq2" ];
then
echo $arq
fi

done


  


2. Re: Comparando Strings

Vinicius Mello
vmmello

(usa Slackware)

Enviado em 17/09/2010 - 14:08h

Não sei se entendi exatamente. Mas pelo visto nesse arquivo .txt em cada linha tem uma string que pode conter a palavra .app, correto?

Pra verificar se a string .app existe em determinada linha pode fazer assim:

for line in $(cat /tftpboot/autoconfig/output/dir.txt); do
if echo $line |egrep -q '\.app'; then
echo $line
fi
done



3. Re: Comparando Strings

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 17/09/2010 - 14:08h

Não faça apenas com o cat, use o grep pra auxiliar. Ele é mais rico e tem recursos para esse tipo d situação. Ex.:

# cat /tftpboot/autoconfig/output/dir.txt | grep app

Dae ele listará tudo q contiver a palavra "app". Caso queira palavras q comecem com "app", faça:

# cat /tftpboot/autoconfig/output/dir.txt | grep ^app

E assim vai. Leia o manual dele pra vc ver as expressões e parâmetros:

# man grep


4. Re: Comparando Strings

Marcelo F. Molina
molina

(usa Debian)

Enviado em 17/09/2010 - 14:26h

Opa, jóia! agora eu consegui... é simples, mas, realmente não conheço nada de shell script. Bom, tb resolvi assim:

for line in $(cat /tftpboot/autoconfig/output/dir.txt); do

arq=$(echo $line | grep "app")

if [ "$arq" == "$line" ]; then
echo $arq
fi

done

Valeu, gente! Deus abençõe a nós todos!



5. Mais rapido???

Perfil removido
removido

(usa Nenhuma)

Enviado em 01/10/2010 - 20:01h

#!/bin/bash
# more http://sekysu.blogspot.com

SEARCH=$1
ARQ='/tftpboot/autoconfig/output/dir.txt'

for LINE in $( grep $SEARCH $ARQ ); do
echo $LINE | cut -d '.' -f 2
done

exit

Sem teste e portanto, mais rapido. Mas poderia ser apenas:

#!/bin/bash
# more http://sekysu.blogspot.com

SEARCH=$1
ARQ='/tftpboot/autoconfig/output/dir.txt'

grep $SEARCH $ARQ | cut -d '.' -f 2

exit

E sim... Eu sou muito chato!!!
;P







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts