Forum Programmation.shell script pour gerer le deplacement de sequence d'images

Posté par  .
Étiquettes : aucune
0
24
août
2005
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  . Évalué à 1.

    • [^] # Re: Myrtille

      Posté par  . Évalué à 1.

      j'avais vu cette util lors de ma recherche
      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  (site web personnel) . Évalué à 3.

    Tu veux trier des images dans un répertoire ? Tu veux le faire sur la base de la ressemblance des images entre elle ? Tu veux le faire suivant le nom de tes images ?

    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  . Évalué à 1.

      désolé pour le manque de details
      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  (site web personnel) . Évalué à 2.

        En gros tu rencontres un début d'une séquence (genre 091001.dpx) et là tu essayes de déplacer tous les fichiers qui se suivent (091002.dpx, 091003.dpx .. 091050.dpx) dans un répertoire 091001.dpx (par exemple) ?

        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.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.