• [^] # Re: Que veux-tu faire exactement ?

    Posté par (site web personnel) . En réponse au message script pour gerer le deplacement de sequence d'images. É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.