Pour chaque ligne d'un fichier, exécuter un script
Résolu/Fermé
julessh
Messages postés
26
Date d'inscription
jeudi 18 juin 2015
Statut
Membre
Dernière intervention
23 juin 2015
-
Modifié par mamiemando le 19/06/2015 à 14:23
julessh Messages postés 26 Date d'inscription jeudi 18 juin 2015 Statut Membre Dernière intervention 23 juin 2015 - 23 juin 2015 à 11:37
julessh Messages postés 26 Date d'inscription jeudi 18 juin 2015 Statut Membre Dernière intervention 23 juin 2015 - 23 juin 2015 à 11:37
A voir également:
- Pour chaque ligne d'un fichier, exécuter un script
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Script vidéo youtube - Guide
5 réponses
mamiemando
Messages postés
33361
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
15 novembre 2024
7 799
Modifié par mamiemando le 19/06/2015 à 11:20
Modifié par mamiemando le 19/06/2015 à 11:20
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
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 620
19 juin 2015 à 13:27
19 juin 2015 à 13:27
hello
qu'est ce qui ne fonctionne pas ?
qu'est ce qui ne fonctionne pas ?
julessh
Messages postés
26
Date d'inscription
jeudi 18 juin 2015
Statut
Membre
Dernière intervention
23 juin 2015
19 juin 2015 à 13:48
19 juin 2015 à 13:48
il execute le script seulement pour la première ligne du fichier
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
>
julessh
Messages postés
26
Date d'inscription
jeudi 18 juin 2015
Statut
Membre
Dernière intervention
23 juin 2015
19 juin 2015 à 14:05
19 juin 2015 à 14:05
Salut,
Et est-ce que comme ça ça marche ?
Si oui, il serait opportun de voir aussi le contenu du script
Et est-ce que comme ça ça marche ?
while read ligne do echo $ligne; done < /jules/epurer.txt
Si oui, il serait opportun de voir aussi le contenu du script
ckclpl;-\
julessh
Messages postés
26
Date d'inscription
jeudi 18 juin 2015
Statut
Membre
Dernière intervention
23 juin 2015
19 juin 2015 à 14:08
19 juin 2015 à 14:08
ckclpl est un script contenant pas mal de lignes permettant d aller checker des choses sur des serveurs
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
>
julessh
Messages postés
26
Date d'inscription
jeudi 18 juin 2015
Statut
Membre
Dernière intervention
23 juin 2015
19 juin 2015 à 14:12
19 juin 2015 à 14:12
Merci de répondre d'abord à la 1ère question ;-\
mamiemando
Messages postés
33361
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
15 novembre 2024
7 799
19 juin 2015 à 14:20
19 juin 2015 à 14:20
@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 :-)
mamiemando
Messages postés
33361
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
15 novembre 2024
7 799
Modifié par mamiemando le 19/06/2015 à 14:07
Modifié par mamiemando le 19/06/2015 à 14:07
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
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 620
19 juin 2015 à 15:39
19 juin 2015 à 15:39
mettre des " si il y a des espaces
./ckclpl "$aLine"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
julessh
Messages postés
26
Date d'inscription
jeudi 18 juin 2015
Statut
Membre
Dernière intervention
23 juin 2015
23 juin 2015 à 11:37
23 juin 2015 à 11:37
merci :) a tous finalement j'ai abandonné et je l ai fais avec un sed dans un autre fichier ;)
19 juin 2015 à 11:44
mais sinon le script ne marches pas (celui que tu as fait)
j ai bien évidement remplacé les chemins par les miens