Compara igualdade entre arquivos
Publicado por Jackson Klarosk (última atualização em 07/12/2012)
[ Hits: 7.286 ]
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.
#!/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
Instalar o Navegador Tor em qualquer distribuição Linux
Script de backup para fita DAT
slacklibre - Seu Slackware 100% Livre
Gerenciador Simples de Empresa
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









