Comment faire pour que dans une liste, le seul séparateur pris en compte soit le retour chariot, et non pas l'espace ?
Je m'explique : j'ai un fichier de configuration domaines.cfg :
1 societe.com
2 societe.fr
8 masociete.com
Je souhaite parcourir ce fichier ligne par ligne avec une boucle "for" par exemple.
Voici mon code :
#!/bin/sh
LISTE=`cat domaines.cfg`
for a in $LISTE;
do
echo "Enregistrement $a"
done;
Voilà le résultat que j'aimerais avoir :
Enregistrement 1 societe.com
Enregistrement 2 societe.fr
Enregistrement 8 masociete.com
A la place, voici ce que j'obtiens
Enregistrement 1
Enregistrement societe.com
Enregistrement 2
Enregistrement societe.fr
...
Quelqu'un à une idée ? Merci pour votre aide !
# df
Posté par fcartegnie . Évalué à 5.
do
//...........
echo enregistrement $domaine
done
# read est ton ami
Posté par Annah C. Hue (site web personnel) . Évalué à 4.
[^] # Re: read est ton ami
Posté par Dertron . Évalué à 2.
Merci aussi à fcartegnie dont la soluce était pas si mal !
[^] # Re: read est ton ami
Posté par Toto . Évalué à 4.
Ex:
old_IFS=$IFS
IFS=" "
LISTE=`cat domaines.cfg`
for a in $LISTE;
do
echo "Enregistrement $a"
done;
IFS=$old_IFS
Cela peut etre pratique si tu as besoin d'utiliser un autre séparateur à un autre moment (plutot que d'appeler cut, sed et autres programmes)
# sed c'est dien
Posté par Infernal Quack (site web personnel) . Évalué à 5.
L'association LinuxFr ne saurait être tenue responsable des propos légalement repréhensibles ou faisant allusion à l'évêque de Rome, au chef de l'Église catholique romaine ou au chef temporel de l'État du Vatican et se trouvant dans ce commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.