Compara igualdade entre arquivos

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

[ Hits: 7.120 ]

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

POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - RESUMO DE MSGS COM VIRUS

Tradução de endereços de uma rede interna

Copiando arquivos de uma so vez para todos usuarios

Sincronização entre Servidores de Impressão

Gravar DVDs no Linux pelo Cron


  

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