Compara igualdade entre arquivos
Publicado por Jackson Klarosk (última atualização em 07/12/2012)
[ Hits: 7.197 ]
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
Cria ambiente virtual (VirtualHost no Apache e Virtual Mail no Postfix) para desenvolvimento web
Criando Autoridades Certificadoras e Certificados de Testes no Linux
Fazendo backup de uma pasta em arquivos separados
Controlando bloqueios de máquinas com squid.conf
Backup copiando para ftp durante 7 dias
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (1)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)
Secure boot, artigo interessante, nada técnico. (5)









