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

Linux Discussion :

[BASH] Création de deux scripts


Sujet :

Linux

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut [BASH] Création de deux scripts
    Salut à tous !

    Ayant quitté le monde Linux il y a un peu de temps maintenant, j'avoue avoir perdu certains automatismes, voir certaines notions ! Certes je me sers souvent du Terminal sous Mac OS X, mais plus de scripts bash...

    L'environnement de ces deux scripts :
    Ces scripts seront lancés sur mon Apple TV ! En effet, j'y ai accès via le SSH donc tant qu'à faire! J'ai rattaché à mon Apple TV un disque dur externe pour y copier mes DVD's n'ayant pas la place sur mon MacBook de les inclure dans iTunes pour les synchroniser automatiquement.
    Aussi, l'explorateur de mon AppleTV me permets d'ajouter les affiches des films concernés, via un fichier jpg.

    Passons au script, vous allez comprendre !

    1 / Affiche ou pas ?
    Il faudrait que le script liste le répertoire ATV_USB ( qui correspond à mon disque dur externe, en réalité /Volumes/ATV_USB ) ainsi que ces sous-répertoires ( et oui car j'ai tout classé suivant : Films / Séries / Animés / ... ) et vérifie si pour chaque fichier AVI ou MP4 ( DVD passés sous Handbrake sort en AVI ou MP4) il existe bien un fichier JPG correspondant !
    Exemple : pour UnderTeam.avi doit exister UnderTeam.jpg
    Attention, le script devra être sensible à la casse, les noms de fichiers devront donc être complètement identique.
    Au final devrait sortir un fichier log, ou seuls les films n'ayant pas d'affiches apparaîtraient !


    2 / Liste des films
    Ce script devra scanner le répertoire ATV_USB et sortir la liste des fichiers présents ( sauf les fichiers JPG sinon c'est pas drôle :p ) et aussi supprimer l'extension des fichiers AVI/MP4 et ainsi offrir une jolie liste ! Si possible, faire un petit effort de présentation, exemple :
    - Films
    -- R
    --- RIPS
    -- U
    --- Under Team

    Et oui, j'ai classé mes films par ordre alphabétique !


    Voilà j'espère que c'est assez clair, je sais bien coder le début, mais après je loose alors bon...
    J'ai jeter un oeil du côté de "xargs" / "find" / "ls" / ... mais je ne trouve pas comment mettre tout ça en oeuvre correctement

    Merci à celui qui m'aidera

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Si tu as perl sur la machine voici un oneliner pour le premier script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find $ATV_USB -iname '*.avi' -or -iname '*.mp4' | perl -lne '($img = $_) =~ s/\..{3}$/.jpg/; print if !-e $img;'

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse !

    Il n'y a pas Perl sur AppleTV

    J'ai trouvé un plug-in pour l'installer, mais j'aimerais éviter d'installer Perl "juste" pour cette fonction

    L'ATV est suffisamment plantogène une fois "débridé"

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Personne pour voler à mon secours ?!

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    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 720
    Points : 31 043
    Points
    31 043
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par RIPS78 Voir le message
    1 / Affiche ou pas ?
    Il faudrait que le script liste le répertoire ATV_USB ( qui correspond à mon disque dur externe, en réalité /Volumes/ATV_USB ) ainsi que ces sous-répertoires ( et oui car j'ai tout classé suivant : Films / Séries / Animés / ... ) et vérifie si pour chaque fichier AVI ou MP4 ( DVD passés sous Handbrake sort en AVI ou MP4) il existe bien un fichier JPG correspondant !
    Exemple : pour UnderTeam.avi doit exister UnderTeam.jpg
    Attention, le script devra être sensible à la casse, les noms de fichiers devront donc être complètement identique.
    Au final devrait sortir un fichier log, ou seuls les films n'ayant pas d'affiches apparaîtraient !
    Pas de problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #!/bin/sh
     
    # Initialisation fichier log
    >fichier_log
     
    # Traitement de la liste des films dans une boucle
    find /volume/ATV_USB -name "*.avi" -o -name "*.mp4" -print |while read film
    do
        # Récupération du nom (sans l'extension)
        name=`echo "$film" |cut -f1 -d\.`
     
        # Vérification si ".jpg" existe ou bien écriture dans fichier log
        test -s "$name.jpg" || echo $film >>fichier_log
    done
    Citation Envoyé par RIPS78 Voir le message
    2 / Liste des films
    Ce script devra scanner le répertoire ATV_USB et sortir la liste des fichiers présents ( sauf les fichiers JPG sinon c'est pas drôle :p ) et aussi supprimer l'extension des fichiers AVI/MP4 et ainsi offrir une jolie liste !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /volume/ATV_USB -name "*.avi" -o -name "*.mp4" -print |cut -f1 -d\.
    Citation Envoyé par RIPS78 Voir le message
    Si possible, faire un petit effort de présentation, exemple :
    - Films
    -- R
    --- RIPS
    -- U
    --- Under Team
    Tu veux pas 100 balles aussi ? De toute façon, la philosophie d'Unix c'est "mon script en fait le minimum ce qui le rend modulaire (on peut l'intégrer de partout) et s'il faut habiller le résultat ben je pipe vers un programme (qui peut être un autre script) destiné à l'habillage (comme "pr" par exemple)

    Citation Envoyé par RIPS78 Voir le message
    Voilà j'espère que c'est assez clair, je sais bien coder le début, mais après je loose alors bon...
    J'ai jeter un oeil du côté de "xargs" / "find" / "ls" / ... mais je ne trouve pas comment mettre tout ça en oeuvre correctement
    Ah ben faut travailler le shell !!! Cours Shell Linux : http://linux.developpez.com/cours/

    Citation Envoyé par RIPS78 Voir le message
    Merci à celui qui m'aidera
    Pas de pb

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 2
    Points
    2
    Par défaut
    Tu sais que c'est agaçant ?!

    Mais bigrement sympa car commenté donc je vais pouvoir comprendre ou du moins essayer, et je vais même voir un peu ce que dis ton tuto et donc tenter de générer la dites liste

    MERCI !!!

    Edit : Après essai, cela ne fonctionne pas correctement... Ca ne scan qu'un seul répertoire sur tout le disque externe... La méthode semble bonne, j'ai pensé à un soucis d'autorisations, mais même en utilisant sudo ça marche pas mieux alors...

    Je cherche et puis je vous tiens au courant Encore merci

Discussions similaires

  1. création d'un script en bash
    Par kandy dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/02/2010, 13h16
  2. [BASH]Problème création d' un script
    Par crasho007 dans le forum Linux
    Réponses: 2
    Dernier message: 05/11/2007, 15h34
  3. Envoyer des infos vers deux scripts
    Par Samrock dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 19h05
  4. Problème de compatibilité entre deux scripts
    Par frutix dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/01/2006, 14h24

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