Pour chaque ligne d'un fichier, exécuter un script
Résolu
julessh
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
julessh Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
julessh Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
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 !
A voir également:
- Pour chaque ligne d'un fichier, exécuter un script
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Ouvrir un fichier .dat - Guide
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 :
Par ailleurs, attention aux chemins (c'est sans doute plutôt
Bonne chance
... 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 ?
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 :-)
@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
toto.sh
Test
Bonne chance
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mais sinon le script ne marches pas (celui que tu as fait)
j ai bien évidement remplacé les chemins par les miens