lire un fichier ligne a ligne en bash

lire un fichier ligne a ligne en bash - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 05-06-2003 à 10:29:03    

ben voila, comment lire un fichier donné ligne par ligne (et accessoirement recupérer cette ligne dans une variable pour traiotement dans un script bash ??

Reply

Marsh Posté le 05-06-2003 à 10:29:03   

Reply

Marsh Posté le 05-06-2003 à 10:39:20    

Code :
  1. for ligne in `cat ./le_fichier`; do
  2. la_commande $ligne
  3. done


Message édité par Mjules le 05-06-2003 à 10:39:38

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 05-06-2003 à 10:47:10    

a ben oui, c tout con  :pt1cable:  
 
merci  :hello:

Reply

Marsh Posté le 05-06-2003 à 10:58:57    

euh, ca marche pas comme je voudrai : ca lit bien, mais mot par mot ...
je cherche a lire ligne par ligne

Reply

Marsh Posté le 05-06-2003 à 11:14:43    

iznogoud_23 a écrit :

euh, ca marche pas comme je voudrai : ca lit bien, mais mot par mot ...
je cherche a lire ligne par ligne
 


 
 
cat fichier|
while read ligne
do
   commande $ligne
done

Reply

Marsh Posté le 05-06-2003 à 11:18:42    

Pas de solution intelligente.
Solution pas intelligente :
1) fais un script doit.sh qui fait ce que tu veux faire sur chaque ligne.
2) fais
   cat fichier | awk '{ print "doit.sh " $* }' > tmp.sh
3) exécuter tmp.sh
J'admets que c'est très moche et qu'il y a sûrement plus intelligent, mais bon ...

Reply

Marsh Posté le 05-06-2003 à 11:48:12    

Un peu moins débile:
 
DOIT="ma command intelligente ligne par ligne"
cat "$1" | awk '{ print "${DOIT} " $* }'| sh

Reply

Marsh Posté le 05-06-2003 à 11:52:54    

Suivant la commande à effectuer il a peut-être intérêt à tout faire en awk/gawk...

Reply

Marsh Posté le 05-06-2003 à 14:22:35    

bon, j'ai trouvé une methode assez simple :  
 
while read ligne; do
  lacommande $ligne
done < fichieralire

Reply

Marsh Posté le 05-06-2003 à 16:17:50    

iznogoud_23 a écrit :

bon, j'ai trouvé une methode assez simple :  
 
while read ligne; do
  lacommande $ligne
done < fichieralire


 
C'est un petit peu ce que j'ai indiqué plus haut  :ange:

Reply

Marsh Posté le 05-06-2003 à 16:17:50   

Reply

Marsh Posté le 05-06-2003 à 16:58:17    

[Albator] a écrit :


 
C'est un petit peu ce que j'ai indiqué plus haut  :ange:  


 
Avec un cat inutile en moins ;)

Reply

Marsh Posté le 05-06-2003 à 17:16:07    

ArSuniK a écrit :


 
Avec un cat inutile en moins ;)
 


 
Bof inutile ...
Moi je préfère voir le nom du fichier que je lis avant la boucle, mais c'est perso ...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed