#1 Le 13/11/2017, à 07:45
- Darkforce
[RESOLU] Programme tri photo V2
Bonjour,
hier j'ai ouvert une discussion sur mon programme de tri de photos mais y'avais beaucoup trop de fautes je l'ai donc refais hier soir et maintenant il fonctionne mais j'ai tout de même une question.
Le programme:
#!/bin/bash
clear
echo "COPIE ET CLASSSEMENT IMAGES PAR DATE"
echo "Tapez le chemin absolue du dossier contenant les images"
read CHEMIN
mkdir $CHEMIN/PICTURES-SORT
cd $CHEMIN
#Partie selection des fichiers images et extration tag
for FILES in *.jpg
do
exif -t=0x0132 $FILES >DATE.txt
sed -n '/^..Value/p' DATE.txt >DATE2.txt # 1) ici il y a beaucoup trop de redirection
cut -c10-19 DATE2.txt >DATE3.txt
sed 's/:/-/g' DATE3.txt >DATE4.txt
sed "s/$/:$FILES/" DATE4.txt >>TMP_EXIF_INFO.txt
echo "Extration du tag de la photo $FILES DONE"
done
#Partie classement
sort -k 1 TMP_EXIF_INFO.txt
i=1
while read line
do
sed -n " $i p" TMP_EXIF_INFO.txt >TMP_UNIQ_EXIF_INFO.txt
FILENAME=$(cut -d : -f 2 TMP_UNIQ_EXIF_INFO.txt)
cp $CHEMIN/$FILENAME $CHEMIN/PICTURES-SORT/$i-$FILENAME
let "i=$i+1"
done <TMP_EXIF_INFO.txt
1) J'ai essayé de faire avec la commande:
|
Exemple:
sed -n '/^..Value/p' | cut -c10-19 Fichier
Mais ça ne fontionne pas du coup je me retrouve avec 6 fichiers différents
Dernière modification par Darkforce (Le 13/11/2017, à 14:03)
Hors ligne
#2 Le 13/11/2017, à 07:51
- pingouinux
Re : [RESOLU] Programme tri photo V2
Bonjour,
sed -n '/^..Value/p' DATE.txt >DATE2.txt # 1) ici il y a beaucoup trop de redirection
Cette commande retourne toutes les lignes du fichier DATE.txt commençant par 2 caractères quelconques suivis de Value.
Hors ligne
#3 Le 13/11/2017, à 08:04
- Darkforce
Re : [RESOLU] Programme tri photo V2
oui c'est exact mais au final y'en a qu'une et elle contient la date mais si tu pourrais m'aider pour cette histoire de redirections je suis sur qu'il y a un moyen plus simple que ce que j'ai fais
je veux juste replacer > par |
Dernière modification par Darkforce (Le 13/11/2017, à 08:05)
Hors ligne
#4 Le 13/11/2017, à 08:16
- pingouinux
Re : [RESOLU] Programme tri photo V2
Il faudrait que tu montres le contenu de DATE.txt et ce que tu veux obtenir.
Hors ligne
#5 Le 13/11/2017, à 08:33
- Darkforce
Re : [RESOLU] Programme tri photo V2
Très bien la je suis en cours mais a 9h30 je le met merci!
Hors ligne
#6 Le 13/11/2017, à 09:47
- Darkforce
Re : [RESOLU] Programme tri photo V2
Contenue de DATE.txt :
EXIF entry 'Date and Time' (0x132, 'DateTime') exists in IFD '0':
Tag: 0x132 ('DateTime')
Format: 2 ('ASCII')
Components: 20
Size: 20
Value: 2016:07:13 20:24:21
Contenue de TMP_EXIF_INFO:
2016-07-11:1.jpg
2016-07-11:20160711_073441.jpg
2016-07-11:20160711_073454.jpg
2016-07-11:20160711_073506.jpg
2016-07-11:20160711_073519.jpg
2016-07-11:20160711_073528.jpg
2016-07-11:20160711_073540.jpg
2016-07-11:20160711_073549.jpg
2016-07-11:20160711_073556.jpg
2016-07-11:20160711_073610.jpg
2016-07-11:20160711_073616.jpg
2016-07-11:20160711_073627.jpg
2016-07-11:20160711_073637.jpg
2016-07-11:20160711_073648.jpg
2016-07-11:20160711_073701.jpg
2016-07-11:20160711_073726.jpg
2016-07-13:20160713_201959.jpg
2016-07-13:20160713_202019.jpg
2016-07-13:20160713_202040.jpg
2016-07-13:20160713_202102.jpg
2016-07-13:20160713_202214.jpg
2016-07-13:20160713_202220.jpg
2016-07-13:20160713_202225.jpg
2016-07-13:20160713_202252.jpg
2016-07-13:20160713_202256.jpg
2016-07-13:20160713_202416.jpg
2016-07-13:20160713_202423.jpg
Contenue de TMP_EXIF_UNIQ_INFO.txt:
2016-07-13:20160713_202423.jpg
Voila merci pour ton aide !
Dernière modification par Darkforce (Le 13/11/2017, à 10:45)
Hors ligne
#7 Le 13/11/2017, à 10:26
- pingouinux
Re : [RESOLU] Programme tri photo V2
Tu peux déjà remplacer la première boucle par :
for FILES in *.jpg
do
awk -v f="$FILES" '/^..Value/{gsub(":","-",$2);print $2":"f}' DATE.txt
echo "Extration du tag de la photo $FILES DONE" >&2
done >TMP_EXIF_INFO.txt
Hors ligne
#9 Le 13/11/2017, à 10:52
- Darkforce
Re : [RESOLU] Programme tri photo V2
Beaucoup plus pratique avec awk merci beaucoup !
Sais tu si il existe un livre a son sujet?Je sais qu'il y a celui d'o'reilly mais il est en anglais et j'ai le livre bash des editions eni mais awk n' est que brièvement introduit.J'aimerai vraiment apprendre tous ce qu'on peut faire avec.
Dernière modification par Darkforce (Le 13/11/2017, à 10:53)
Hors ligne
#10 Le 13/11/2017, à 10:59
- pingouinux
Re : [RESOLU] Programme tri photo V2
Et si j'ai bien compris, voici la seconde boucle :
i=1
while read line
do
FILENAME=$(cut -d : -f 2 <<<"$line")
cp "$CHEMIN/$FILENAME" "$CHEMIN/PICTURES-SORT/$((i++))-$FILENAME"
done <TMP_EXIF_INFO.txt
ou, si tu veux trier les fichiers :
i=1
while read line
do
FILENAME=$(cut -d : -f 2 <<<"$line")
cp "$CHEMIN/$FILENAME" "$CHEMIN/PICTURES-SORT/$((i++))-$FILENAME"
done < <(sort TMP_EXIF_INFO.txt)
Hors ligne
#11 Le 13/11/2017, à 11:17
- Darkforce
Re : [RESOLU] Programme tri photo V2
Parfait merci mon programme et bien plus efficace grace a toi !
Hors ligne
#12 Le 13/11/2017, à 11:22
- pingouinux
Re : [RESOLU] Programme tri photo V2
C'est parce que ta seconde boucle parcourait le fichier TMP_EXIF_INFO.txt, et pour chaque ligne lue, faisait un sed sur tout le fichier.
Hors ligne