Advertisement
aremesal

Check for corrupt JPG

Apr 12th, 2020
756
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.05 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Cambiamos IFS para tragar con espacios al expandir variables dentro de un comando
  4. OLDIFS=$IFS
  5. IFS=$'\n'
  6.  
  7. # El check para que quede bonito :D
  8. CHECK_MARK="\033[0;32m\xE2\x9C\x94\033[0m"
  9.  
  10. # Vaciar archivo de posibles anteriores ejecuciones
  11. echo '' > imagenes_corruptas.txt
  12.  
  13. # Recorrer recursivamente todos los archivos de este directorio, conservando su path
  14. for FILE in `ls -R ./ 2> /dev/null | awk '
  15. /:$/&&f{s=$0;f=0}
  16. /:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
  17. NF&&f{ print s"/"$0 }' | grep -i jpg`; do
  18.         # Limpiar espacios
  19.         FILE=`echo $FILE | sed "s/\"//g"`
  20.  
  21.         echo -ne "\\r Comprobando $FILE..."
  22.  
  23.         # identify trata de abir el archivo, si da "corrupt" o "error" o "not a JPG", extraigo la parte del nombre de archivo y lo añado al listado
  24.         identify -verbose "$FILE" 2>&1 | grep -iE "corrupt|error|not a JPG" | cut -d "\`" -f 2 | cut -d "'" -f 1 >> imagenes_corruptas.txt
  25. done
  26. echo -e
  27. echo -e ${CHECK_MARK} Terminado
  28.  
  29. # Vuelvo a dejar el IFS original, para no fastidiar la consola actual
  30. IFS=$OLDIFS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement