Pour chaque ligne d'un fichier, exécuter un script
Résolu
julessh
Messages postés
26
Statut
Membre
-
julessh Messages postés 26 Statut Membre -
julessh Messages postés 26 Statut Membre -
Bonjour tout le monde !
voila j'ai un petit soucis et oui encore je voudrais exécuter un script pour chaque lignes d'un fichier
le script ayant pour param le contenu de la ligne petit soucis le code bug le voici :
while read aLine ;do listeProgs[$i]="$aLine"; ((i++));
./ckclpl $aLine;
done < /jules/epurer.txt
je ne sais pas si vous voyez ce que j'essaye de faire si vous ne comprenez pas dites le moi :)
merci !
voila j'ai un petit soucis et oui encore je voudrais exécuter un script pour chaque lignes d'un fichier
le script ayant pour param le contenu de la ligne petit soucis le code bug le voici :
while read aLine ;do listeProgs[$i]="$aLine"; ((i++));
./ckclpl $aLine;
done < /jules/epurer.txt
je ne sais pas si vous voyez ce que j'essaye de faire si vous ne comprenez pas dites le moi :)
merci !
5 réponses
-
Bonjour,
... sauf qu'en bash ça ne s'écrit pas comme ça.
https://forums.commentcamarche.net/forum/affich-37620017-comment-lire-un-fichier-ligne-par-ligne#syntaxe
Du coup ce serait plus :
while read ligne do ./ckclpl $ligne; done < /jules/epurer.txt
Par ailleurs, attention aux chemins (c'est sans doute plutôt/home/jules/epurer.txt
+ il vaut mieux éviter les chemins relatifs dans un script car le script ne marchera pas forcément en fonction du répertoire dans lequel tu es positionné pour le lancer).
Bonne chance -
hello
qu'est ce qui ne fonctionne pas ?-
-
-
-
-
@julessh et zipe31 : Merci de répondre en bas de fil de discussion avec le bouton "répondre au sujet en bas de page" et non en commentaire, car sinon ça va devenir illisible.
@julessh : peut-être que ton shell est configuré (voir option -e) pour sortir dès qu'il y a une erreur, et que ton script, ne se termine pas avec le code de retour 0. Ça expliquerait pourquoi le script stoppe à la première itération.
Une manière de trancher serait de remplacer l'appel à ckclpl par echo comme suggéré ici :
https://forums.commentcamarche.net/forum/affich-32132518-pour-chaque-ligne-d-un-fichier-executer-un-script#6
@julessh : pense à répondre à zipe31 :-)
-
-
Je ne sais pas où tu t'es trompé mais a priori ça marche :-)
toto.txt
j'aime les tapirs
oh une mouette
toto.sh
#!/bin/sh while read ligne do echo "<$ligne>"; done < $HOME/toto.txt exit 0
Test
(mando@aldur) (~) $ sh toto.sh
<j'aime les tapirs>
<oh une mouette>
Bonne chance -
mettre des " si il y a des espaces
./ckclpl "$aLine"
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
merci :) a tous finalement j'ai abandonné et je l ai fais avec un sed dans un autre fichier ;)