#1 Le 05/02/2013, à 19:03
- D3XT3R
Problème lecture ligne par ligne
Bonsoir,
Pour un certain besoin, je dois lire un fichier ligne par ligne et le traiter comme ça :
while read l
do
ok=$(echo $l |sed -e "s/ \{1,\}/./g")
echo $ok >> final
done < "temp_$1.txt"
Cependant, le fichier "final" ne prend jamais la dernière ligne de mon fichier, et si le fichier a une seule ligne, il ne la prend pas.. j'ai cherché.. en vain.
Merci à vous
Hors ligne
#2 Le 05/02/2013, à 19:16
- pingouinux
Re : Problème lecture ligne par ligne
Bonsoir,
Je viens de tester ton script, la dernière ligne du fichier est bien prise en compte.
Remarque : Il est préférable de mettre les variables entre " " après echo
Hors ligne
#3 Le 05/02/2013, à 19:21
- D3XT3R
Re : Problème lecture ligne par ligne
Merci grâce à toi, je sais au moins et je viens de tester, le script marche, c'est lors du remplissage en PHP que cela bug, je vais chercher et revient.
Edit : Le fichier en sortie de mon script PHP n'était pas correct, finalement tout marche pour le mieux.
Je passe en résolu, merci
Dernière modification par D3XT3R (Le 05/02/2013, à 19:32)
Hors ligne
#4 Le 05/02/2013, à 19:43
- pingouinux
Re : Problème lecture ligne par ligne
Pour info, ton script est équivalent à ceci :
sed -e "s/ \{1,\}/./g" "temp_$1.txt" >final
Dernière modification par pingouinux (Le 05/02/2013, à 20:47)
Hors ligne
#5 Le 05/02/2013, à 20:33
- nesthib
Re : Problème lecture ligne par ligne
ou plutôt à ceci :
sed -e "s/ \+/./g" f "temp_$1.txt" >final
(ou >>final si tu veux cumuler à chaque lancement)
@pingouinux : attention {1,} est équivalent à + mais {1,1} est inutile (équivalent à ne rien mettre)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#6 Le 05/02/2013, à 20:46
- pingouinux
Re : Problème lecture ligne par ligne
@nesthib #5 : Tu as raison, j'ai fait par erreur un copier-coller d'un de mes essais. Je corrige.
Hors ligne