Pages : 1
#1 Le 30/12/2007, à 14:05
- miraks
while read ne retourne pas les \
Lorsque je lis un fichier avec "while read", le caractere "\" est supprimé de la ligne lue.
Exemple, si j'execute le script suivant:
echo "A\\B" | while read L
do
echo $L
done
Le résultat est "AB" au lieu de "A\B".
Comment faire pour lire un fichier ligne à ligne en gardant les "\" ?
Par avance merci.
Hors ligne
#2 Le 30/12/2007, à 19:37
- olivier.d75
Re : while read ne retourne pas les \
Si on remplace les guillemets " par des quotes ', ça marche :
echo 'A\\B' | while read L
do
echo $L
done
Hors ligne
#3 Le 31/12/2007, à 10:54
- miraks
Re : while read ne retourne pas les \
Si on remplace les guillemets " par des quotes ', ça marche :
echo 'A\\B' | while read L do echo $L done
C'est normal car le résultat de echo 'A\\B' est A\\B
Et comme le read supprime un \, ca affiche A\B.
Il manque donc un \.
Ce n'est donc pas la solution.
Hors ligne
#4 Le 31/12/2007, à 11:35
- olivier.d75
Re : while read ne retourne pas les \
ça semble marcher avec l'option -r :
echo "A\\B" | while read -r L
do
echo $L
done
Hors ligne