comparação de lista com erro esperado expressão de número inteiro [RESOLVIDO]

1. comparação de lista com erro esperado expressão de número inteiro [RESOLVIDO]

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 24/01/2016 - 13:06h

Olá, estou desenvolvendo um script que compara 2 listas, se a segunda coluna de um arquivo conter em outro, exibe a primeira coluna do outro arquivo.
exemplo:
arquivo com nome de 7.txt
IPP 108.162.248.43,111.67.28.3 BQT revolution-slider.zip
IPP 108.162.248.43,111.67.28.3 BQT revslider.zip
IPP 108.162.248.43,111.67.28.3 BQT showbiz.zip
IPP 138.94.200.50,172.17.12.29 BQT curriculum
IPP 172.245.128.159 BQT revslider.zip
IPP 172.245.128.159 BQT showbiz.zip
IPP 177.41.237.185 BQT Cia.jpg
IPP 177.41.237.185 BQT Culto
IPP 177.41.237.185 BQT edb.jpg
IPP 177.41.237.185 BQT Jovens.jpg
IPP 177.41.237.185 BQT Lar.jpg
IPP 177.41.237.185 BQT Senhoras.jpg
IPP 187.78.179.155 BQT 1-Custom.png
IPP 187.78.179.155 BQT 3.png
IPP 187.78.179.155 BQT afmGrowthChart.png
IPP 187.78.179.155 BQT bhcoffe
IPP 187.78.179.155 BQT criacao-de-sites-anuncios-google.png
IPP 187.78.179.155 BQT goo-Custom.png
IPP 187.78.179.155 BQT ipad2j.jpg
IPP 187.78.179.155 BQT ipad2j.png
IPP 187.78.179.155 BQT IT-SP1.png
IPP 187.78.179.155 BQT LOGOpng1A.png
IPP 187.78.179.155 BQT restfmf1a2.png
IPP 187.78.179.155 BQT restfmf1.png
IPP 187.78.179.155 BQT restfm.png
IPP 200.161.50.2 BQT grficaemitaqusuagrficaonlineemitaquaquecetubaeregio.wordpress.2016-01-22.xml
IPP 200.161.50.2 BQT logo-poa.png
IPP 200.161.50.2 BQT slidehome.zip
IPP 46.118.155.216 BQT revslider.zip
IPP 83.222.214.165 BQT HnnDLXld.php
IPP 83.222.214.165 BQT revslider.zip

a lista de comparação chamei de lista-comp.txt
BQT revslider.zip
BQT showbiz.zip
BQT HnnDLXld.php
BQT settings_auto.php
BQT revolution-slider.zip

minha ideia é encontrar no arquivo 7.txt o que tem na lista-comp.txt
mas exibir somente a primeira coluna, no caso seria os ips
no terminal funciona,mas com erros

linha 14: [: 108.162.248.43,111.67.28.3
108.162.248.43,111.67.28.3
108.162.248.43,111.67.28.3
200.161.50.2
200.161.50.2
200.161.50.2
46.118.155.216
83.222.214.165
83.222.214.165: esperado expressão de número inteiro


tambem poderia conseguir um meio de exibir a linha toda, por que depois eu consigo remover as palavras e deixar somente os ips.
to quebrando a cabeça pra fazer isso funfar.

#!/bin/bash
SHELL=/bin/sh
PATH=/sbin:/usr/sbin:/usr/bin:/bin

lis=$(cat /home/bloqueia-envio/comp/lista-comp.txt | awk -F " " '{print "" $2 }' | wc -l )


for i in $lis
do


line_num=$(grep -n $i /home/bloqueia-envio/7.txt | awk -F " " '{print "" $2 }' )

if [ "$line_num" -gt "0" ];
then
echo " $i "
echo "IPP $i">>/home/bloqueia-envio/8.txt

else
echo ""
fi
done





  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/01/2016 - 16:04h

Cara desculpa tentei responder rapido e deu nisso . estou aprendendo tambem e programo oque me vem a cabeça , no momento estava desenvolvendo um script que me avisa quando sai um novo tópico aqui no "VoL" (virei fan boy kkkkkkk).

segue ai o script para resolver sua vida :

#!/bin/bash

while read line; do
found=$(cat ~/7.txt | grep "$line")
if [[ "$?" == 0 ]]; then
echo -e "$found" | awk '{print $2}'
fi
done < ~/lista-comp.txt

exit 0;


Mais uma vez desculpe pela resposta fuleira que dei ...meu pai sempre me disse "Se não tem nada que preste para dizer FIQUE QUIETO" (eu deveria ter me lembrado disso).

E não se esqueça de me dizer se deu certo!!!

3. comparação de lista com erro esperado expressão de número inteiro

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/01/2016 - 13:42h

conectadohost escreveu:
if [ "$line_num" -gt "0" ];
then
echo " $i "
echo "IPP $i">>/home/bloqueia-envio/8.txt
else
echo ""
fi
done

Tente assim e fala se deu certo.

if [ "$line_num" > 0 ]; then
echo " $i "
echo "IPP $i">>/home/bloqueia-envio/8.txt
fi



4. res: comparação de lista com erro esperado expressão de número inteiro

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 24/01/2016 - 14:00h

Olá,
obrigado pela ajuda, deu o seguinte erro
linha 30: erro de sintaxe: fim prematuro do arquivo

eu adicionei no final
else
echo ""
fi
done

ele executou só que agora ele contou
root@marciommm-NH4CU53:/bin# bloqueia-envio.sh
6


---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---


5. res: comparação de lista com erro esperado expressão de número inteiro

marcio mendes mendes
conectadohost

(usa XUbuntu)

Enviado em 24/01/2016 - 16:14h

Olá,
opa valeu mesmo funcionou exatamente como eu precisava, inclusive vai me servir para desenvolver outros scripts em cima desse.
vai ganhar uns pontinhos.kkkk
espero poder ajuda-lo quando você precisar.






---> A arte de programar consiste na arte de organizar e dominar a complexidade.
---> Dijkstra <---



  



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts