Bash: problème avec while

LezardMoo Messages postés 614 Statut Membre -  
 Utilisateur anonyme -
Bonsoir à tous !!!

voila je suis coincé avec un petit problème,

j=1 
while [ $j -lt 11 ]
do
mplayer 'head -$j /home/clem/Musique/test3 | tail -1' -vc null -vo null -ao pcm:file=/home/clem/Musique/Diab-Laury/'head -$n/home/clem/Musique/SoundCloud/.soundcloud/nom | tail -1'.wav


alors voila, ne sais pas comment remplacer la varibla $n par un nom. c'est en fait une liste de nom dans un fichier

j'ai testé

plusieurs chose ainsi que ca:

j=1 
while [ $j -lt 11 ]
do
n=0
while [ $n -lt 11 ]
do
n=$n+1
done
mplayer 'head -$j /home/clem/Musique/SoundCloud/.soundcloud/test3 | tail -1' -vc null -vo null -ao pcm:file=/home/clem/Musique/SoundCloud/Diab-Laury/'head -$n /home/clem/Musique/SoundCloud/.soundcloud/nom | tail -1'.wav
let j=$j+1
done


mais ca marche pas non plus.

merci d'avance à tous

10 réponses

  1. Utilisateur anonyme
     
    salut,

    si tu commançais par exposer ton problème plus clairement, tu aurais, par toi-même peut-être, un début de réponse.

    décris plus précisément le problème, avec des échantillons de tes fichiers.

    ce que tu as
    ce que tu veux
    les étapes pour obtenir ce que tu veux
    les obstacles que tu rencontres
    à quel niveau
    1
  2. LezardMoo Messages postés 614 Statut Membre 14
     
    hello !!

    oui effectivement d'habitude j'explique un peu mieux ^^

    alors en fait, ma boucle sert à générer le paramètre pour la commande 'head'

    head -1 fichier par exemple, ben la je voulais utiliser une boucle pour remplacer le 1 par des valeurs.
    en fait jusque là ca fonctionne. Maintenant le petit hic c'est que dans ma commande j'ai 2 fois la commande 'head' avec des param differents

    mplayer '<souligne>head </souligne>-$j /home/clem/Musique/test3 | tail -1' -vc null -vo null -ao pcm:file=/home/clem/Musique/Diab-Laury/'head -$n/home/clem/Musique/SoundCloud/.soundcloud/nom | tail -1'.wav


    si je fait un boucle pour le premier 'head', aucun problème

    j=1 
    while [ $j -lt 11 ]
    do
    mplayer '<souligne>head </souligne>-$j /home/clem/Musique/test3 | tail -1' -vc null -vo null -ao pcm:file=/home/clem/Musique/Diab-Laury/'head -$n/home/clem/Musique/SoundCloud/.soundcloud/nom | tail -1'.wav
    let j=$j+3
    done


    le parametre du premier 'head' est bien remplacé.

    par contre le paramètre du second 'head' (que j'aimerais simplement incrementer de 1) je ne sais pas comment le générer par ce que je suis dans la meme comande.

    Merci d'avance ;), j'espère que c'est clair...
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    le deuxième head peut-être remplacé par une boucle:
    ....pcm:file=/home/clem/Musique/Diab-Laury/$(for n in 1 2 3 4;do head -$n....... ; done).wav
    0
  4. Utilisateur anonyme
     
    musiques=~/Musique
    j=1
    while [ $j -lt 11 ]
    do
       mplayer 'sed -n ${j}p $musiques/test3' -vc null -vo null -ao pcm:file=$musiques/Diab-Laury/'sed -n $((j+1))p $musiques/SoundCloud/.soundcloud/nom'.wav
       j=$((j+3))
    done
    ou bien
    musiques=~/Musiques
    while read -r fichier
    do
       j=$((j+1))
       test $j -lt 11 && mplayer "$fichier" -vc null -vo null -ao pcm:file=$musiques/Diab-Laury/'sed -n $((j+1))p $musiques/SoundCloud/.soundcloud/nom'.wav || break
    done <$musiques/test3


    mais pourquoi 11 ? il y a quelque chose après la onzième ligne, ou le fichier ne compte-t-il que onze lignes ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. LezardMoo Messages postés 614 Statut Membre 14
     
    oui il y a onze ligne, 1vide plus les 10autres ^^

    en gros je wget une source, je recup les lignes voulu dans un fichier
    je prend ce fichier je recup 2 sortes d'info, un lien et un nom.
    les liens sont pour mplayer et les nom sont pour les titre des sons (second head)

    pour être clair le script permet de dl un son de soundcloud ou alors tout les sons d'une page.

    il fonctionne très bien, j'avais juste remplacé les titres par l'heure minute seconde pour ne pas 'quil s'ecrase xD

    Je viens de tester avec le for, ca marche... mais ca me lit que la première ligne de mon fichier, les autres lignes ne sont pas lues... enfin il me dl bien chaque fichier mais lui donne comme nom la première ligne... du coup ca ecrase a chaque fois
    0
  7. Utilisateur anonyme
     
    montre-nous les fichiers, et un exemple de commande type, ce sera plus clair.

    on reprend
    d'abord
    wget -O page_reçue.html http://page_demandée.html
    ensuite...

    comment en arrives-tu à avoir deux fichiers ?
    0
  8. LezardMoo
     
    #extraction des lignes contenant l'url du flux audio vers scd.txt
            grep 'http://media.soundcloud.com/stream/' 'ls -l | head -2 | tail -1 | cut -d\  -f 13' > scd.txt
    
            #extraction des titres
            cat scd.txt | awk -F 'title' '{print $2}' | awk -F '\"' '{print $3}' | tr ' ' '-' > title.txt
    

    ensuite

    i=3
            while [ $i -lt 30 ]
            do
            head -$i /Users/cfiguiere/Music/SoundCloud/.soundcloud/scd.txt | awk -F 'streamUrl' '{print $2}' | awk -F '\"' '{print $3}' | tail -3 >> /Users/cfiguiere/Music/SoundCloud/.soundcloud/test2
            let i=$i+3
            done
            cat /Users/cfiguiere/Music/SoundCloud/.soundcloud/test2 | sort -u >> /Users/cfiguiere/Music/SoundCloud/.soundcloud/test3


    et la fameuse boucle de la fin

    j=1
    		while [ $j -lt 11 ]
    		do
    		mplayer 'head -$j /Users/cfiguiere/Music/SoundCloud/.soundcloud/test3 | tail -1' -vc null -vo null -ao pcm:file=/Users/cfiguiere/Music/SoundCloud/'head -1 /Users/cfiguiere/Music/SoundCloud/.soundcloud/scd.txt | awk -F 'username' '{print $2}' | awk -F '\"' '{print $3}' | tr ' ' '-''/$(for t in 1 2 3 4 5 6 7 8 9 10;do head -$t /Users/cfiguiere/Music/SoundCloud/.soundcloud/title | tail -1 ; done).wav
    		let j=$j+1 
    		done


    ca aide assez ?
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      On pourrait avoir le fichier source s'il te plaît ? (cjoint ou autres)
      Et à la limite un exemple de ce que chacune de tes commandes est censée retourner ?
      0
    2. LezardMoo
       
      ben ca m'embete un peu, pas que je ne veux pas le partager, bien au contraire mais j'aimerais le finir avant. par contre je peux l'envoyer par mail si vous voulez :)
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      bien au contraire mais j'aimerais le finir avant.
      Pas compris désolé ;-(
      0
    4. LezardMoo Messages postés 614 Statut Membre 14
       
      j'ai pas envie de le poster comme ca, il est fonctionnel a part mon prob avec la boucle donc je propose de l'envoyer par mail ou par la poste si tu veux ^^
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      On parle bien de la même chose, à savoir le fichier source (html) récupéré par la commande wget ?
      0
  9. LezardMoo Messages postés 614 Statut Membre 14
     
    et pour info, voila les messages ressorti par mplayer
    
    AO PCM] File: /Users/cfiguiere/Music/SoundCloud/Roaring-Spirit/Teachings-Of-Dub-Part-01 (WAVE)
    PCM: Samplerate: 44100Hz Channels: Stereo Format s16le
    [AO PCM] Info: Faster dumping is achieved with -vc null -vo null -ao pcm:fast
    [AO PCM] Info: To write WAVE files use -ao pcm:waveheader (default).
    AO: [pcm] 44100Hz 2ch s16le (2 bytes per sample)
    Video: no video
    Starting playback...
    A: 208.1 (03:28.1) of 208.0 (03:28.0)  0.7% 0% 
    
    Playing Phenix.
    File not found: 'Phenix'
    Failed to open Phenix.
    
    
    Playing Warrior-Style-Part-2---Mix.
    File not found: 'Warrior-Style-Part-2---Mix'
    Failed to open Warrior-Style-Part-2---Mix.
    
    
    Playing Warrior-Style-Part-1---Mix.
    File not found: 'Warrior-Style-Part-1---Mix'
    Failed to open Warrior-Style-Part-1---Mix.
    
    
    Playing Dawn-Stepper-(dub2).
    File not found: 'Dawn-Stepper-(dub2)'
    Failed to open Dawn-Stepper-(dub2).
    0
  10. LezardMoo Messages postés 614 Statut Membre 14
     
    et voila http://dl.free.fr/getfile.pl?file=/rEi3rWUq

    mais pourquoi tu veux le code source de la page, zip31 ?
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Pour voir ce que tu veux exactement récupérer et s'il n'y a pas plus simple à faire...

      Par contre j'ai besoin de savoir ce que sont censées récupérer exactement les commandes suivantes :

      #extraction des lignes contenant l'url du flux audio vers scd.txt
              grep 'http://media.soundcloud.com/stream/' 'ls -l | head -2 | tail -1 | cut -d\  -f 13' > scd.txt
      
              #extraction des titres
              cat scd.txt | awk -F 'title' '{print $2}' | awk -F '\"' '{print $3}' | tr ' ' '-' > title.txt

      Je n'ai pas bien pigé ton grep sur la sortie de "ls...."
      0
    2. LezardMoo Messages postés 614 Statut Membre 14
       
      ca c'est parce que je n'ai pas utilisé wget -o name url xD
      c'est du moi prose de tete a 100%, en fait je bosse dans un dossier dont le contenu est effacé a chaque fin du script, donc en gros le grep agit sur le seul fichier ( a ce moment là du script) qui est présent dans le dossier.

      ensuite pour les titre, je recup le fichier scd et je recherche le mot "title" en decoupant tout ce qu'il y a autour pour pouvoir récup uniquement les titre des sons que je retravail pour remplacer les espace par '-' et je renvoi tout ca dans un fichier qui sera utilié par la suite dans mplayer pour donner un nom au son. (c'est que je coince avec ce fichiet et ma boucle contenant la commande mplayer)
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      et je renvoi tout ca dans un fichier qui sera utilié par la suite dans mplayer pour donner un nom au son. (c'est que je coince avec ce fichiet et ma boucle contenant la commande mplayer)
      D'où ma demande ;-\

      Si on ne sait pas ce que tu récupères en sortie et comment, il nous sera difficile de t'aider et encore moins de trouver où ça coince.

      Donc, merci de nous donner les compléments d'infos demandés !

      A savoir, pour chaque commande de ton script, et à chaque étape, une idée de ce qui entre et sort et de ce que tu voudrais réellement.

      Par exemple pour le fichier que tu m'as envoyé, qu'est-ce qui doit rester après traitement et se trouver dans le fichier "scd.txt" ???
      0
    4. LezardMoo Messages postés 614 Statut Membre 14
       
      je ressort ca

      window.SC.bufferTracks.push({"id":48365485,"uid":"JTIyyF0lPsDv","user":{"username":"Roaring Spirit","permalink":"roaringspirit"},"uri":"/roaringspirit/teachings-of-dub-part-01","duration":1431088,"token":"mUBNY","name":"teachings-of-dub-part-01","title":"Teachings Of Dub Part 01","commentable":true,"revealComments":true,"commentUri":"/roaringspirit/teachings-of-dub-part-01/comments/","streamUrl":"http://media.soundcloud.com/stream/JTIyyF0lPsDv?stream_token=mUBNY","waveformUrl":"http://w1.sndcdn.com/JTIyyF0lPsDv_m.png","propertiesUri":"/roaringspirit/teachings-of-dub-part-01/properties/","statusUri":"/transcodings/JTIyyF0lPsDv","replacingUid":null,"preprocessingReady":true,"renderingFailed":false,"isPublic":true,"geo":[],"commentableByUser":true,"favorite":false,"followingTrackOwner":false});
      window.SC.bufferTracks.push({"id":44519972,"uid":"8M9mn0IjSW5i","user":{"username":"Roaring Spirit","permalink":"roaringspirit"},"uri":"/roaringspirit/phenix","duration":208196,"token":"Fh2Wm","name":"phenix","title":"Phenix","commentable":true,"revealComments":true,"commentUri":"/roaringspirit/phenix/comments/","streamUrl":"http://media.soundcloud.com/stream/8M9mn0IjSW5i?stream_token=Fh2Wm","waveformUrl":"http://w1.sndcdn.com/8M9mn0IjSW5i_m.png","propertiesUri":"/roaringspirit/phenix/properties/","statusUri":"/transcodings/8M9mn0IjSW5i","replacingUid":null,"preprocessingReady":true,"renderingFailed":false,"isPublic":true,"geo":[],"commentableByUser":true,"favorite":false,"followingTrackOwner":false});
      window.SC.bufferTracks.push({"id":34814028,"uid":"inMUQpwy2aKP","user":{"username":"Roaring Spirit","permalink":"roaringspirit"},"uri":"/roaringspirit/warrior-style-part-2-mix","duration":2266043,"token":"6DJVj","name":"warrior-style-part-2-mix","title":"Warrior Style Part 2 - Mix","commentable":true,"revealComments":true,"commentUri":"/roaringspirit/warrior-style-part-2-mix/comments/","streamUrl":"http://media.soundcloud.com/stream/inMUQpwy2aKP?stream_token=6DJVj","waveformUrl":"http://w1.sndcdn.com/inMUQpwy2aKP_m.png","propertiesUri":"/roaringspirit/warrior-style-part-2-mix/properties/","statusUri":"/transcodings/inMUQpwy2aKP","replacingUid":null,"preprocessingReady":true,"renderingFailed":false,"isPublic":true,"geo":[],"commentableByUser":true,"favorite":false,"followingTrackOwner":false});
      window.SC.bufferTracks.push({"id":34078724,"uid":"it3xDPhavXNB","user":{"username":"Roaring Spirit","permalink":"roaringspirit"},"uri":"/roaringspirit/warrior-style-part-1-mix","duration":2319902,"token":"eoHE9","name":"warrior-style-part-1-mix","title":"Warrior Style Part 1 - Mix","commentable":true,"revealComments":true,"commentUri":"/roaringspirit/warrior-style-part-1-mix/comments/","streamUrl":"http://media.soundcloud.com/stream/it3xDPhavXNB?stream_token=eoHE9","waveformUrl":"http://w1.sndcdn.com/it3xDPhavXNB_m.png","propertiesUri":"/roaringspirit/warrior-style-part-1-mix/properties/","statusUri":"/transcodings/it3xDPhavXNB","replacingUid":null,"preprocessingReady":true,"renderingFailed":false,"isPublic":true,"geo":[],"commentableByUser":true,"favorite":false,"followingTrackOwner":false});
      window.SC.bufferTracks.push({"id":27426870,"uid":"Qv2FNi6N0aPx","user":{"username":"Roaring Spirit","permalink":"roaringspirit"},"uri":"/roaringspirit/dawn-stepper-dub2","duration":229390,"token":"i75eZ","name":"dawn-stepper-dub2","title":"Dawn Stepper (dub2)","commentable":true,"revealComments":true,"commentUri":"/roaringspirit/dawn-stepper-dub2/comments/","streamUrl":"http://media.soundcloud.com/stream/Qv2FNi6N0aPx?stream_token=i75eZ","waveformUrl":"http://w1.sndcdn.com/Qv2FNi6N0aPx_m.png","propertiesUri":"/roaringspirit/dawn-stepper-dub2/properties/","statusUri":"/transcodings/Qv2FNi6N0aPx","replacingUid":null,"preprocessingReady":true,"renderingFailed":false,"isPublic":true,"geo":[],"commentableByUser":true,"favorite":false,"followingTrackOwner":false});
      window.SC.bufferTracks.push({"id":27426434,"uid":"qpeDlaJKmQbV","user":{"username":"Roaring Spirit","permalink":"roaringspirit"},"uri":"/roaringspirit/tribulation-rmx","duration":211567,"token":"7YODd","name":"tribulation-rmx","title":"Tribulation (rmx)","commentable":true,"revealComments":true,"commentUri":"/roaringspirit/tribulation-rmx/comments/","streamUrl":"http://media.soundcloud.com/stream/qpeDlaJKmQbV?stream_token=7YODd","waveformUrl":"http://w1.sndcdn.com/qpeDlaJKmQbV_m.png","propertiesUri":"/roaringspirit/tribulation-rmx/properties/","statusUri":"/transcodings/qpeDlaJKmQbV","replacingUid":null,"preprocessingReady":true,"renderingFailed":false,"isPublic":true,"geo":[],"commentableByUser":true,"favorite":false,"followingTrackOwner":false});
      window.SC.bufferTracks.push({"id":27426251,"uid":"DcFLBjxLpZ5c","user":{"username":"Roaring Spirit","permalink":"roaringspirit"},"uri":"/roaringspirit/tribulation-dub-rmx","duration":212377,"token":"N8wXi","name":"tribulation-dub-rmx","title":"Tribulation Dub (rmx)","commentable":true,"revealComments":true,"commentUri":"/roaringspirit/tribulation-dub-rmx/comments/","streamUrl":"http://media.soundcloud.com/stream/DcFLBjxLpZ5c?stream_token=N8wXi","waveformUrl":"http://w1.sndcdn.com/DcFLBjxLpZ5c_m.png","propertiesUri":"/roaringspirit/tribulation-dub-rmx/properties/","statusUri":"/transcodings/DcFLBjxLpZ5c","replacingUid":null,"preprocessingReady":true,"renderingFailed":false,"isPublic":true,"geo":[],"commentableByUser":true,"favorite":false,"followingTrackOwner":false});
      window.SC.bufferTracks.push({"id":27425623,"uid":"xdYhdPXAfeWE","user":{"username":"Roaring Spirit","permalink":"roaringspirit"},"uri":"/roaringspirit/wood-stepper","duration":205139,"token":"8z4TG","name":"wood-stepper","title":"Wood Stepper","commentable":true,"revealComments":true,"commentUri":"/roaringspirit/wood-stepper/comments/","streamUrl":"http://media.soundcloud.com/stream/xdYhdPXAfeWE?stream_token=8z4TG","waveformUrl":"http://w1.sndcdn.com/xdYhdPXAfeWE_m.png","propertiesUri":"/roaringspirit/wood-stepper/properties/","statusUri":"/transcodings/xdYhdPXAfeWE","replacingUid":null,"preprocessingReady":true,"renderingFailed":false,"isPublic":true,"geo":[],"commentableByUser":true,"favorite":false,"followingTrackOwner":false});
      


      mais heuuu... la seule chose qui coince c'est que je ne suis pas au point pour la boucle while avec $i et $j a l'intérieure en fait
      0
    5. LezardMoo Messages postés 614 Statut Membre 14
       
      bon si je precise pas, pas d'interet.

      en gros ca me ressort tout les lignes contenant ceci: "streamUrl":"http://media.soundcloud.com/stream
      0
  11. Utilisateur anonyme
     
    awk '/http:\/\/media\.soundcloud\.com\/stream\//{   
          split($0,a,"title")   
          split($0,b,"streamUrl")   
    
       gsub(" ","_",a[2])   
       split(a[2],c,"\"")   
       split(b[2],d,"\"")   
    
       print c[3]" "d[3]   
    }' ~/Téléchargements/roaringspirit | while read titre adresse 
    do echo mplayer "$adresse" -vc null -vo null -ao "pcm:$titre" 
    done


    fichiers temporaires? a p'u!
    code plus que bizarroïde? a p'u!

    ça devrait fonctionner.
    si le code affiche ce que tu veux, enlève le 'echo'.
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      while read titre adresse
      do echo mplayer "$adresse" -vc null -vo null -ao "pcm:$title"


      Y'aurait-y pas comme un os ? ;-\

      ;-))
      0
    2. Utilisateur anonyme
       
      rhoo, tu chipotes :)

      j'ai corrigé, merci.
      0