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
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  2. Gunther
     
    Merci !

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

    @+

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

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