EliminarDuplicados.sh 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/bash
  2. # Eliminar archivos duplicados en contenido dejando una copia
  3. DIR=$1
  4. SALIDA_TEMP1='/tmp/duplicados.txt'
  5. C1='/tmp/duplicados-f1.txt'
  6. C2='/tmp/duplicados-f2.txt'
  7. veces='0'
  8. # Elimina repetidos
  9. eliminar_repetidos_de_linea () {
  10. linea=$1
  11. veces=$2
  12. echo "=>($veces): $linea"
  13. # para iterar desde el segundo argumento (dejando el primero como la fuente)
  14. #for((i=2;i<$veces+1;i++))
  15. i=0
  16. while [ $i -lt $veces ]
  17. do
  18. let "e = i+2"
  19. echo " . $i . $e"
  20. echo $linea | cut -f$e
  21. #archivo_eliminar=$(echo $linea | cut -f$e)
  22. #echo "eliminando: $archivo_eliminar"
  23. ((i++))
  24. # ls "$archivo_eliminar"
  25. # aqui los comandos para eliminar
  26. #rm "$archivo_eliminar"
  27. done
  28. }
  29. python3 duplicados.py $DIR > $SALIDA_TEMP1
  30. # Recorriendo linea por linea
  31. while read -r linea
  32. do
  33. # contando numero de duplicados
  34. # echo "$linea"
  35. veces=$(echo "$linea" | grep -o "$(printf '\t')" | wc --line)
  36. # echo "$linea --> $veces"
  37. eliminar_repetidos_de_linea "$linea" "$veces"
  38. # ls $linea
  39. # rm -f "$linea"; # eliminando el archivo
  40. done < $SALIDA_TEMP1
  41. echo "Archivos duplicados eliminados: $(wc --lines $C1)"