IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Ranger des fichiers selon leur type


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut Ranger des fichiers selon leur type
    Bonjour,

    Dans un dossier, j'ai une longue liste de fichiers de code sources de types différents.

    Je souhaite les rager selon leur type à l'aide d'un script unix shell

    Voici ma conception :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Début
    Initialiser extension a chaineDeCaractère vide “”
    pour chaque ficher
    	Extension = substring (depuis le denier point jusqu'à la fin)
    		si le dossier correspondent à l'extention n'existe pas
    		utiliser mkdir pour le créer
    	déplacer les fichiers avec mv dont les résultat de find correspond à extention dnas le dossier correspondant
    Fin
    Prototype de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $extention = ""
    for i in is
    do
        $extention = SUBSTRING=`echo $i| cut -d'_'lastindexof"."`
        if ! [ -d "$extention" ]; then
            mkdir "$extention
        fi
        mv find *.$extention /$extention
    done
    Note :
    Je travaille souvent avec les commande unix mais je n'ai encore jamais jais de script donc pourriez-vous m'aider à corriger mon code ?

    Merci d'avance

    Salutations à tous
    Battant

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 387
    Points
    19 387
    Par défaut
    Bonjour,

    quelle différence avec ton précédent sujet ?

    as-tu pris le temps de lire les réponses à ton précédent sujet ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 280
    Points : 12 729
    Points
    12 729
    Par défaut
    Bonjour,
    Il y a des manques:
    -Si le fichier n'a pas d'extension, on le met où ?
    -Si on a le cas suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    repertoire1/fichier.php
    repertoire2/fichier.php
    Ici on a 2 fichiers dans un répertoire différent mais avec le même nom, si on les met dans le repertoire php, on n'aura que le dernier trouvé.
    Cordialement.

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Voici ma conception
    Corrige-le en :
    "Voici ma flemme."

    Ce qui m'énerve le plus, c'est que le temps passé à poster et re-poster des âneries sur le forum aurait été suffisant pour corriger les-dites âneries.
    Tu vas pas dire que tu as fourni un travail quelconque quand tu écris "mv find" ou "for i in is".
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    707
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 707
    Points : 366
    Points
    366
    Par défaut
    Bonjour,

    Désolé j'ai trop insister je ne le ferais plus

    Salutations
    Battant

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Battant Voir le message
    Désolé j'ai trop insister je ne le ferais plus
    Bonjour
    C'est surtout que tu as "mal" insisté (au participe passé et non à l'infinitif). Pourquoi ouvrir 2 topics différents ? Pourquoi ne pas dire ce que tu sais faire ?? Pourquoi aussi ne pas répondre à nos questions ; surtout celle de disedorgue quand il parle des deux fichiers de même noms ???
    (et pas de "s" à la première personne du futur).

    • for i in rep/*; do => initialise une boucle sur tous les fichiers du dossier "rep" qui iront se ranger un par uns dans la variable "i". Dans ce cas, aucun risque d'avoir deux fichiers ayant le même nom
    • find rep -type f | while read i; do => initialise une boucle sur tous les fichiers de l'arborescence qui démarre à "rep" et qui iront se ranger un par uns dans la variable "i" mais là, gros risque de tomber sur le "cas disedorgue"
    • echo "$i" | fgrep "\." 1>/dev/null => expression booléenne permettant de détecter la présence d'un point dans la variable "$i"
    • echo "$i" | cut -f2- -d\. => récupère toute chaine située après le premier "."


    Avec ça, t'as de quoi bien démarrer. Encore faut-il que tu t'y mettes sérieusement...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. supprimer des fichiers selon leur nom
    Par qmike dans le forum VBScript
    Réponses: 3
    Dernier message: 12/06/2012, 09h28
  2. [Débutant] supprimer des éléments selon leur type
    Par r0d dans le forum C#
    Réponses: 10
    Dernier message: 22/06/2011, 09h24
  3. Formatage des Cellules selon leur type dans DGV
    Par ElTchoupi dans le forum Windows Forms
    Réponses: 8
    Dernier message: 18/11/2009, 16h36
  4. déplacer des fichiers selon leur extension
    Par chicabonux dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 12/10/2009, 16h42
  5. Lire des fichiers selon leur nom
    Par guiguilelotois dans le forum LabVIEW
    Réponses: 4
    Dernier message: 18/05/2009, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo