J'ai perdu mon line feed

Gunther -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Mon problème est extrèmement simple:

J'ai un script ksh qui contient les instructions suivantes:

check=$(tail -200 fichier.log)

print $check;

Et là, ooooh surprise, il n'y a plus les retour à la ligne.

Encore plus étonnant: tapez en ligne de commande echo $(ls -l) et le résultat est sur une seule ligne.

Ma question Comment fait on pour avoir le résultat sur plusieurs lignes quand le résultat de la commande comprend \n ?

j'ai essayé de faire une redirection sur un sed /\n/\\\n/ mais sans succès....

Si cela peut vous aider, je suis en solaris sun 9

Merci pour votre aide !

Gunther

4 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

check=$(tail -200 fichier.log)
print $check;
Et là, ooooh surprise, il n'y a plus les retour à la ligne.

Il faut quoter ta variable avec des doubles quotes :
check=$(tail -200 fichier.log)
print "$check";
Pour ton second problème :
OLD_IFS=$IFS; IFS=$'\r'; echo $(ls -l); IFS=$OLD_IFS
:-))
0
Gunther
 
Merci !

Je me tais, et je ravale ma fierté, j'ai juste perdu une heure avec cette connerie :)

@+

Gunther
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

j'ai juste perdu une heure avec cette connerie
mais non, tu n'as rien perdu, tu as gagné un réponse :-)
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
j'ai juste perdu une heure avec cette connerie
Je te rassure on y est tous passé et on y passera encore ;-))
0