Compara igualdade entre arquivos

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

[ Hits: 6.786 ]

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

Instalação para Placa Atheros

lock com xscreensaver

Remove Automaticamente os Kernel Antigos do GRUB

Cadastrando usuários para email no Slackware de forma mais simples

Menu para servidor LDAP


  

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