Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1284 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Filtre Médiathèque

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Filtre Médiathèque

n°1275685
yoshi42
Posté le 02-01-2006 à 01:02:35  profilanswer
 

Bonjour,
je débute avec les scripts shell et je dois avouer que je suis vraiment bloqué sur un problème.
Je suis en train d'écrire un script pour faire une "médiathéque" mp3.
En paramètre de ce script on pourra filtrer les fichiers musicaux en fonction des méta-informations qu'ils contiennent.Par exemple,
pour obtenir toutes les chansons de rock ou hard rock etc...,il faudra utiliser un paramètre -f avec la commande suivante genre="rock"|"hard-rock"
ensuite on me demande de faire en sorte qu'on puisse utiliser l'étoile (*) dans les filtres .
 
la 1ere chose que je fais c'est que j'analyse tous les paramètres qu'on passe au script
 

Code :
  1. for ((i=1;i<=$#;i++))
  2. do
  3.   if [ "${!i}" = "-f" ]
  4.   then
  5.    param1=$(($i+1)) #contient le paramètre qui suit -f
  6.    filmedia ${param1} #filmedia est une fonction qui va filtrer la médiathèque
  7.   else echo "parametre non valide"
  8. done


 
mon 1er problème : il faut que je substitue les paramètres à mesure que je m'en sers. En effet le paramètre qui suit -f ne doit pas être traité dans la boucle car sinon il va afficher paramètre non valide.Il faut que je l'envoie dans la fonction filmédia (ça c'est bon) mais ensuite il faut que je le substitue pour pas qu'il soit interprété dans la boucle à la sortie...
 
voici un bout de la fonction filmedia (les autres entrées du case sont construites de la même manière)
 

Code :
  1. function filmedia(){
  2. case "$1" in
  3. "titre="*)
  4. media $racine |cut -f 2 -d ":" | grep
  5. #media $racine renvoie tous les mp3 contenues dans un répertoire sous la forme
  6. #MP3 n° ? : titre : album : artiste : genre : année


Si le parametre $1 commence par "titre=" il faut trier par titre
-->mon 1er probleme est que j'aimerai faire un grep sur le 2eme champ de la sortie media $racine mais sans couper! avec ce sript je ne renvoie que les titres alors que je veux renvoyer toute la ligne...Mais si je ne fais pas de cut il fait un grep sur la ligne, pas sur le 2eme champ de la ligne.
 
-->mon 2eme probleme je ne sais pas comment passer le reste du parametre à grep.Si l'utilisateur marque titre="test" il faut passer grep -w "test"
alors que si il marque titre="test"|"chanson" il faut passer quoi??
c'est bon ça? grep '(\test\|chanson\)'
 
--> et puis vous avez une idée de comment se servir de l'etoile
si l'utilisateur met titre="test*" il faut gérer toute les lignes avec un titre qui commence par test si je fais un  grep test (sans le -w) il va afficher toute les lignes qui contiennent tet pas seulement celles qui commencent par test.
 
 
Je remercie d'avance toute personne pouvant me venir en aide
 :jap:  
Yoshi


Message édité par yoshi42 le 02-01-2006 à 12:31:41
mood
Publicité
Posté le 02-01-2006 à 01:02:35  profilanswer
 

n°1277005
PierreC
Posté le 04-01-2006 à 16:58:18  profilanswer
 

Renseigne toi sur la fonction getopts qui permet justement de gérer les paramatres que l'ont passe à un script.  
Car là tu est en train d'ecrire une usine à gaz j'ai l'impression  :)


---------------
Du tofu en Alsace : www.tofuhong.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Filtre Médiathèque

 

Sujets relatifs
(Crystal Reports) Aidez moi pour creer un filtrerécupérer les données dans la liste d'un filtre automatique
Configurer filtre directshow directement depuis le graph?[hibernate] probleme avec un filtre, et DB2 : "invalid parameter nb"
filtre et cellule visibleComment recuperer le resultat d'un filtre en VBA
problème de filtre avec date et comboboxmon filtre automatique ne marche pas avec les dates
Filtre Excell - récupération des données après filtrageMacro excel VBA complexe sur Filtre auto + récupération des données...
Plus de sujets relatifs à : Filtre Médiathèque


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR