bonjour,
je suis à la recherche d'un script gérant les sequences d'images.
En fait je dois separer plusieurs sequences d'images qui ne se suivent pas, et qui sont stockés dans un meme repertoire.
J'ai besoin de separer ces differentes sequences d'images dans 1 repertoire par sequence.
J'ai commencé à tester avec find mais j'avoue etre bloquer
si quelqu'un possede un script similaire que je puisse adapter, ou simpletement une idée merci de me la faire partager ;)
julien hery
# Myrtille
Posté par mammique . Évalué à 1.
[^] # Re: Myrtille
Posté par smose . Évalué à 1.
mais malheureusement je n'ai pas d'interface graphique :/
c'est pour ça que je cherche à scripter en shell (bash, sed...)
# Que veux-tu faire exactement ?
Posté par yannig (site web personnel) . Évalué à 3.
Tu pourrais nous donner un exemple de ce que tu as et de ce que tu veux obtenir ?
[^] # Re: Que veux-tu faire exactement ?
Posté par smose . Évalué à 1.
voici plus d'explications
en gros j'ai un repertoire "toto"
dans ce repertoire j'ai des suites d'images par ex :
de 091001.dpx jusqu'a 091050.dpx
de 092000.dpx à 093500.dpx
ces suites d'images qui sont dans un meme repertoire, je cherche à les trier par nom, pour obtenir 1 repertoire par sequence d'image par ex :
de 091001.dpx jusqu'a 091050.dpx dans le repertoire toto/1
de 092000.dpx à 093500.dpx dans le repertoire toto/2
j'espere que c plus clair
merci pour votre aide
[^] # Re: Que veux-tu faire exactement ?
Posté par yannig (site web personnel) . Évalué à 2.
Je te propose de faire appel au fichier trie.sh suivant :
#!/bin/bash
STORE=/tmp/sort
previous_id=0
current_rep=""
for fic in $(ls *.dpx | sort)
do
current_id=$(echo $fic | sed 's/[^0-9]*//g' | sed 's/^0*//g')
((id=$previous_id+1))
if [ $id = $current_id ]; then
echo "$fic : appartient à la séquence en cours ($sequence)"
cp $fic $STORE/$sequence
else
sequence=$(echo $fic | sed 's/[^0-9]*//g')
echo "$fic : nouvelle séquence ($sequence)"
mkdir -p $STORE/$sequence
cp $fic $STORE/$sequence
fi
((previous_id=$current_id))
done
Tu le place dans le répertoire où se trouve les fichiers à trier et tu remplaces la valeur de la variable STORE par ce que tu veux.
Chez moi, ça donne ça :
Contenu du répertoire à trier :
[root@brn91-1-82-234-1-119 test]# pwd
/root/test
[root@brn91-1-82-234-1-119 test]# ls
091001.dpx 091003.dpx 091005.dpx 191002.dpx 191004.dpx trie.sh*
091002.dpx 091004.dpx 191001.dpx 191003.dpx 191005.dpx trie.sh~
[root@brn91-1-82-234-1-119 test]# ./trie.sh
091001.dpx : nouvelle séquence (091001)
091002.dpx : appartient à la séquence en cours (091001)
091003.dpx : appartient à la séquence en cours (091001)
091004.dpx : appartient à la séquence en cours (091001)
091005.dpx : appartient à la séquence en cours (091001)
191001.dpx : nouvelle séquence (191001)
191002.dpx : appartient à la séquence en cours (191001)
191003.dpx : appartient à la séquence en cours (191001)
191004.dpx : appartient à la séquence en cours (191001)
191005.dpx : appartient à la séquence en cours (191001)
et le résultat du trie :
[root@brn91-1-82-234-1-119 test]# ll /tmp/sort/*
/tmp/sort/091001:
total 0
-rw-r--r-- 1 root root 0 aoû 25 01:02 091001.dpx
-rw-r--r-- 1 root root 0 aoû 25 01:02 091002.dpx
-rw-r--r-- 1 root root 0 aoû 25 01:02 091003.dpx
-rw-r--r-- 1 root root 0 aoû 25 01:02 091004.dpx
-rw-r--r-- 1 root root 0 aoû 25 01:02 091005.dpx
/tmp/sort/191001:
total 0
-rw-r--r-- 1 root root 0 aoû 25 01:02 191001.dpx
-rw-r--r-- 1 root root 0 aoû 25 01:02 191002.dpx
-rw-r--r-- 1 root root 0 aoû 25 01:02 191003.dpx
-rw-r--r-- 1 root root 0 aoû 25 01:02 191004.dpx
-rw-r--r-- 1 root root 0 aoû 25 01:02 191005.dpx
Voilà, j'espère que ça pourra t'inspirer et t'aider.
[^] # Re: Que veux-tu faire exactement ?
Posté par smose . Évalué à 1.
j'ai testé ça fonctionne parfaitement sur debian
reste à esperer qu'il fonctionne sur mac os x ;)
[^] # Re: Que veux-tu faire exactement ?
Posté par yannig (site web personnel) . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.