Table des Matières

En programmation SHELL le plus simple que j'ai trouvé pour lire un fichier ligne par ligne est la méthode suivante:

On considère que $FICHIER est notre fichier à lire.

$ cat $FICHIER
toto tata titi
tutu tyty tete

Pour avoir ligne par ligne chaque mot séparé j'utilise la syntaxe suivante: (j'ai créé le script foo.sh pour mieux illustrer mon exemple)

$ cat foo.sh
while read a b c do
echo "Var1= $a"
echo "Var2= $b"
echo "Var3= $c"
echo "----"
done < $FICHIER

Le résultat donnera donc ceci lors de l'exécution du script foo.sh

$ ./foo.sh
Var1= toto
Var2= tata
Var3= titi
----
Var1= tutu
Var2= tyty
Var3= tete
----

Voilà, ce petit bout de code n'est pas très prétentieux, mais tellement pratique pour lire des fichiers de configuration (type fstab) et plein d'autres !.

Liste des Commentaires
Anonyme
le 16 Sep 2008 à 21:09:07


cat $FICHIER | awk ´print ¨Var 1 = $1 \n Var 2 = $2 \n Var 3 = $3 \n¨´

le 17 Sep 2008 à 00:06:19
Merci de cette contribution !
Je me permets simplement de corriger la syntaxe:

cat $FICHIER | awk {'print "Var1= " $1 "\n" "Var2= " $2 "\n" "Var3= "$3" \n"'}

Effectivement, je n'avais pas pensé à utiliser awk. :)
z3d
le 16 May 2010 à 19:47:01
L'utilisation de CAT est inutile dans ce cas ci.
La lecture ligne par ligne est implicite avec AWK
awk {'print "Var1= " $1 "\n" "Var2= " $2 "\n" "Var3= "$3" \n"'} $FICHIER
Laissez votre commentaire:
Un ou plusieurs champs ci-dessous ne sont pas remplis correctement.
Les champs obligatoires sont indiqués par une étoile rouge









En aucun cas, votre adresse email ne sera diffusée.
Elle ne sera utilisé que pour l'avatar (service de gravatar.com)
Les champs marqués d'une sont obligatoires.





© 2003 - 2010 kns7.org | Site réalisé et hébergé par KNet Solutions | Plan du site | Contact

En Deuil contre HADOPI:
kns7.org est en deuil contre les obscurantistes industriels du divertissement et leurs lois liberticides