Guest User

Untitled

a guest
Jun 25th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.72 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. if [ $# -lt 1 ]; then
  4.   echo
  5.   echo "Skrypt ten służy do masowej zmiany nazw plików JPEG (.jpg, .jpeg) na nazwy zawierające oryginalną datę i godzinę utworzenia zdjęcia."
  6.   echo
  7.   echo -e "Przykład nowej nazwy: <\033[1;38m$(date '+%Y-%m-%d_%H.%M.%S').jpg\033[0;0m>"
  8.   echo
  9.   echo "W celu dokonania konwersji wejdź do katalogu ze zdjęciami i uruchom skrypt,"
  10.   echo "jako pierwszy argument podając rozszerzenie zdjęcia (bez kropki; wielkość liter ma znaczenie)."
  11.   echo
  12.   echo -e "Użycie: $0 <\033[1;38mrozszerzenie zdjęcia\033[0;0m>"
  13.   echo
  14.   exit 1
  15. fi
  16.  
  17. echo
  18.  
  19. if ! echo "$1" | grep -qi '^jp'; then
  20.   echo -e "\033[1;31mBŁĄD:\033[0;0m Rozszerzenie, które podałeś, nie jest prawidłowe."
  21.   echo
  22.   exit 1
  23. fi
  24.  
  25. if [ ! -x /usr/bin/exif ]; then
  26.   echo -e "\033[1;31mBŁĄD:\033[0;0m Brak programu <\033[1;38mexif\033[0;0m>. Jest on niezbędny do poprawnego działania skryptu."
  27.   echo
  28.   echo -e "Możesz zainstalować go następującą komendą: <\033[1;38msudo apt-get install exif\033[0;0m>."
  29.   echo
  30.   exit 1
  31. fi
  32.  
  33. for i in *."$1"; do
  34.   if exif --tag 0x9003 "$i" > "$i.name.abc123.tmp" 2> /dev/null; then
  35.     newname=$(awk '/Value/ { print $2, $3 }' "$i.name.abc123.tmp" | sed -e 's/:/-/' -e 's/:/-/' -e 's/:/./g' -e 's/ /_/' | awk '{ print $1 }')
  36.     echo -en "Zmieniam nazwę pliku <\033[1;38m"$i"\033[0;0m> na <\033[1;38m$newname.jpg\033[0;0m>: "
  37.     mv "$i" "$newname".jpg && echo -e "\033[1;32mOK\033[0;0m" || echo -e "\033[1;31mBŁĄD\033[0;0m"
  38.     rm -f "$i.name.abc123.tmp"
  39.   else
  40.     echo -e "\033[1;31mBŁĄD:\033[0;0m Nie można odczytać daty i godziny utworzenia zdjęcia <\033[1;38m"$i"\033[0;0m>. Nazwa nie została zmieniona."
  41.     rm -f "$i.name.abc123.tmp"
  42.   fi
  43. done
  44.  
  45. echo
Add Comment
Please, Sign In to add comment