Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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

En 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)

En 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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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.

En ligne

Haut de page ↑