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