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 :

[bash] Recherche de fichiers manquants


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut [bash] Recherche de fichiers manquants
    Bonjour,

    Voici un script qui recherche les images et les manuels manquants, dont le début du nom correspond au nom de la ROM d'un jeu,
    et insère le nom de la ROM dans le fichier "missing".

    Pour les images, il existe plusieurs types d'images :
    ROM-bezel.ext
    ROM-fanart.ext
    ROM-image.ext
    ROM-marquee.ext
    ROM-thumb.ext

    J'aimerai que le script m'insère dans le fichier "missing", toutes les images manquantes, sous la forme citée ci-dessus.

    Voici le script :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    #!/bin/bash
     
    if test -f missing ; then  #On vérifie sie le fichier missing existe
        rm missing  #Si le fichier existe, on le supprime
    fi
     
    echo -e "[IMAGES] \n" >> missing  #On insère une section dans le fichier missing
     
    for romFile in *.* ; do  #On extrait les fichiers du répertoire de ROMS
        if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt ] ; then
            continue
        else
            romName=${romFile%.*}  #On supprime l'extension du fichier de ROM
            for imgFile in ./images/"$romName"-* ; do   #On extrait les fichers d'images du répertoire d'images
                if test ! -f "$imgFile" ; then  #On vérifie qu'il existe au-moins un fichier comportant le nom de la ROM
                    echo "$romName" >> missing  #Si aucun fichier image ne correspond, on le consigne dans le fichier missing
                fi
            done
        fi
    done
     
    #On reprends les mêmes actions que précédement pour les manuels des jeux
    echo -e "\n" >> missing
    echo -e "[MANUALS] \n" >> missing
     
    for romFile in *.* ; do
        if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt ] ; then
            continue
        else
            romName=${romFile%.*}
            for manFile in ./manuals/"$romName"-* ; do
                if test ! -f "$manFile" ; then
                    echo "$romName" >> missing
                fi
            done
        fi
    done

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 308
    Par défaut
    Bonjour

    Ton message ne contient aucun point d'interrogation. Il n'y a donc pas de question. Qu'attends-tu des habitués du forum ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    Ma quesrion est
    J'aimerai que le script m'insère dans le fichier "missing", toutes les images manquantes, sous la forme citée ci-dessus.
    Comment insérer dans le fichier "missing", toutes les images manquantes sous la forme nomDeLaRom-bezel.ext, nomDeLaRom-fanart.ext, etc ?

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 308
    Par défaut
    De la même façon que tu as inséré tout le reste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo nomDeLaRom-bezel.ext >> missing

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 334
    Par défaut
    bonjour

    Ta question est beaucoup trop générale. Tu sembles connaître bash et déjà savoir le faire en bash. Peut-être que tu as un blocage à un endroit, mais il faut nous le dire.

    Ou alors, c'est un script que tu as récupéré et tu ne connais rien à bash ? Ce qui semble être le cas, car tu ne poses aucune question relative à bash (juste une demande générale de résultat)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    Effectivement, je débute en bash.
    Je parviens à afficher le nom des roms pour lesquels des images manquent, mais le script serait plus utile et me
    permettrait de gagner du temps si jil affichaot quelle type d'images manquent pour chaque roms (fanart, bezel, etc), et
    ça, je n'y arrive pas.

    C'est pour ajouter cette fonction que je demande de l'aide à la communauté.

  7. #7
    Invité
    Invité(e)
    Par défaut
    quand on commence une discussion sur un forum, on ne la développe pas sur un autre.

    c'est aussi mal poli que de demander son chemin à quelqu'un, et interpeller son voisin pour demander comment aller un peu plus loin.
    Dernière modification par Invité ; 07/06/2024 à 12h30. Motif: erratum

  8. #8
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 334
    Par défaut
    Citation Envoyé par Neelix57 Voir le message
    Et qui te dit que c'est le script de quelqu'un d'autre
    Si il est de toi, alors quel est ton problème ???? On te le demande depuis un bon moment et tu n'es pas capable de nous le dire ...

    Tout ce que tu désires (au niveau bash) est déjà dans ton script, il ne devrait donc avoir aucun problème pour toi

    Citation Envoyé par Neelix57 Voir le message
    C'est pour ajouter cette fonction que je demande de l'aide à la communauté.
    Nous sommes un forum d'entraide entre codeurs (débutants bienvenus), puisque nous sommes codeurs, nous sommes capables de dire où nous bloquons. En aucun cas, ce forum est une source de main d'oeuvre gratuite pour faire le travail à la place du demandeur. Toi, pour l'instant, tu ne fais que demander un résultat alors que tu nous présentes un code qui a toutes les clés.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Par défaut
    Cela fait un moment que j'essaye d'expliquer que je n'arrive pas à trouver comment insérer TOUTES les images manquantes (s'il manques ici un fanart, là un bezel, etc et que j'aimerais un coup de main pour ce faire.

    Avec mon script d'origine, je ne parviens qu'à insérer dans le fichier que le nom de la rom pour laquelle il me manque au-moins 1 image.

    Comment insérer dans le fichier "missing", toutes les images manquantes sous la forme nomDeLaRom-bezel.ext, nomDeLaRom-fanart.ext, etc ?
    Que ne comprends-tu pas dans l'énoncé du problème.

    Bon, j'a fini par trouver par moi-même. Et oui, le but n'est pas de prendre les scripts de quelqu'un d'autre, mais, en même temps que de se simplifierla vie par des script, c'est aussi d'apprendre.

    Je donne ici mon code à tout hasard, car ça peut toujours aider quelqu'un d'autre.

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #!/bin/bash
     
    if test -f missing ; then  #On vérifie si le fichier missing existe
        rm missing  #Si le fichier existe, on le supprime
    fi
     
    declare -a imgType=( bezel fanart image marquee thumb )  #On crée un tableau contenant les différents types d'images
     
     
    echo -e "[IMAGES] \n" >> missing  #On insère une section dans le fichier missing
     
    for romFile in *.* ; do  #On extrait les fichiers du répertoire de ROMS
        if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt ] ; then
            continue
        else
            romName=${romFile%.*}  #On supprime l'extension du fichier de ROM
            for type in "${imgType[@]}" ; do  #On passe en revue les types d'images
                for imgFile in ./images/"${romName}"-"$type".* ; do   #On extrait les fichers d'images du répertoire d'images
                    if test ! -f "$imgFile" ; then  #On vérifie que chaque fichier correpondant à la ROM existe
                        echo "$romName"-"$type" >> missing  #Si un fichier image manque, on le consigne dans le fichier missing
                    fi
                done
            done
        fi
    done
     
    #On reprends les mêmes actions que précédement pour les manuels des jeux
    echo -e "\n" >> missing
    echo -e "[MANUALS] \n" >> missing
     
    for romFile in *.* ; do
        if [ "$romFile" = gamelist.xml -o "$romFile" = _info.txt ] ; then
            continue
        else
            romName=${romFile%.*}
            for manFile in ./manuals/"$romName"-* ; do
                if test ! -f "$manFile" ; then
                    echo "$romName" >> missing
                fi
            done
        fi
    done

  10. #10
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 334
    Par défaut
    Citation Envoyé par Neelix57 Voir le message
    J'aimerai que le script m'insère dans le fichier "missing", toutes les images manquantes
    Que ne comprends-tu pas dans l'énoncé du problème
    Et bien voila ! la question du coté développeur, n'était pas d'inserer, mais simplement, a la ligne X de mon script, dans le répertoire "truc", je ne sais pas comment récupérer uniquement la liste des images suivantes (bezel, fanart, ...).
    Je ne sais pas faire ce filtre "multicritères", un code du genre ls bezel*.* fanart*.* ?



    Au moins, ici, tu parles "code" et tu décris (+ ou - bien) ce qui te bloque.

    ps: désolé d'avoir eu des doutes sur la paternité du code, mais j'ai cru que ton problème était l'insertion Et surtout, plus de 9 fois sur 10, si un codeur n'est pas capable de dire ce qui le bloque, c'est qu'il ne comprend rien au code (ok, tu es l'exception).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [BASH] - recherche à partir d'un fichier
    Par mavric35830 dans le forum Shell et commandes GNU
    Réponses: 8
    Dernier message: 22/11/2019, 13h52
  2. [bash] Rechercher une donnée et la copier vers un autre fichier
    Par Mendozaa dans le forum Shell et commandes GNU
    Réponses: 20
    Dernier message: 17/06/2014, 17h10
  3. [script bash] Rechercher une ligne de caractères dans un fichier
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 09/09/2010, 11h42
  4. batch de recherche de fichier ...
    Par Félia dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 29/07/2004, 15h54
  5. Recherche support fichier
    Par sydiop dans le forum Informix
    Réponses: 5
    Dernier message: 18/03/2004, 10h15

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