Compara igualdade entre arquivos

Publicado por Jackson Klarosk (última atualização em 07/12/2012)

[ Hits: 6.944 ]

Download cmpigual




Comparar igualdade entre arquivos foi uma necessidade que surgiu ao corrigir exercícios de programação enviados pelo Moodle. Busquei por comandos que facilitassem a comparação recursiva de arquivos em uma pasta, mas não achei nada tão específico.

Usei o diff, vimdiff, o cmp e o comm, até que resolvi montar o script que segue.

O script serviu para mim e espero que a comunidade do VOL faça bom proveito.

  



Esconder código-fonte

#!/bin/bash

clear
ls
echo "Digite o nome da pasta de Origem"
read origem 
echo "Digite o percentual esperado"
read perc 

lstarqs=/tmp/listaarqs
arqcmp=/tmp/arquivocomp
arqtmp=/tmp/arquivotemp
resultado=checa

rm $resultado$origem
ls $origem > $lstarqs
if test -s $lstarqs
clear
then
    while test -s $lstarqs
    do
        var1=`head -1 $lstarqs`
        sed -i '1d' $lstarqs
        for var2 in $(cat $lstarqs)
        do
            sort $origem/$var1 $origem/$var2 | awk 'seen[$0]++ == 1' > $arqtmp
            wc -l $origem/$var1 > $arqcmp
            wc -l $origem/$var2 >> $arqcmp
            wc -l $arqtmp >> $arqcmp
            val1=`awk 'NR==1{print $1}' $arqcmp`
            val2=`awk 'NR==2{print $1}' $arqcmp`
            val3=`awk 'NR==3{print $1}' $arqcmp`
            med=$[($val1+$val2)/2]
            res=$[$val3*100/$med]
            if test $res -gt $perc #maior
            #if test $res -lt $perc #menor
            then
                echo $var1 vs $var2 >> $resultado$origem
                echo $res% de igualdade >> $resultado$origem
                echo "=======================" >> $resultado$origem
                echo $var1 vs $var2
                echo $res% de igualdade
                echo "======================="
            fi
        done
    done
rm -f $lstarqs
rm -f $arqcmp
rm -f $arqtmp
fi
exit

Scripts recomendados

FindBackdoor - Detectar possíveis backdoors em arquivos PHP (WordPress)

Instalando e configurando o AIDE em 15 minutos

Configurando Adaptador USBSerial no Ubuntu usando udev

Plugin do Nagios em Shell Script

Firewall - Satefull inspection com NAT


  

Comentários
[1] Comentário enviado por professormartins em 27/03/2013 - 11:24h

Bom dia!

Excelente, script.

Fiquei com um duvida ele faz a comparação do conteúdo?

O que quero fazer e comparar dentro de uma pasta contendo uma arvore muito extensa de pastas contendo fotos e gostaria de comparar e excluir as que são iguais mesmo com o nome do arquivo diferente.

Obrigado
Martins


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts