Lecture ligne shell script

farah -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'aimerais écrire un shell script qui va parcourir le fichier "/tmp/stats.out", et qui va retourner tous les mots de la 4ième ligne. Quelqu'un pourrait m'aider svp?

Merci
Configuration: Linux
Firefox 3.0.3

4 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    tail -n 1 | head -n 4 /tmp/stat.out
    en conjugant tail et head du devrai y arrivé, mais il faut peut être passer par un fichier temporaire.
    0
    1. farah
       
      Merci Snipeur pour ta réponse, mais "tail -n 1 | head -n 4 /tmp/stat.out " m'affiche le contenu de tout le fichier..or je ne veux ke la ligne 4. La ligne 4 contient 8 mots. Je veux faire un echo de chacun des 8 mots séparement.
      Merci
      0
    2. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
       
      oui, je me suis tromper, c'est
      head -n 4 /tmp/stat.out | tail -n 1
      Mais tu aurait pu corriger par toi même. Le principe c'est de tronquer le fichier au delà de la quatrième ligne, puis de ne conserver que la dernière.
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Ou tout simplement :
    sed -n 4p /tmp/stat.out 

    Cdlt
    0
    1. farah
       
      Merci fiddy...effectivement "sed -n 4p /tmp/stat.out " m'affiche la 4ieme ligne ki est composé de 8 mots.
      Mais comment faire un echo de chacun de ces 8 mots séparement?
      0
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Si tu veux récupérer chacun des mots, tu peux utiliser awk '{print $1}' pour afficher le premier mot.
    Donc : sed -n 4p /tmp/stat.out | awk '{print $1}'
    Pour les autres, tu fais varier $1.
    0
  4. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    On peut aussi essayé ça :
    for a in $(sed -n 4p /tmp/stat.out ) then
    do echo $a;
    done

    mais je n'ai pas testé.
    0