Lecture ligne shell script

Fermé
farah - 12 janv. 2009 à 13:30
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 13 janv. 2009 à 09:49
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
A voir également:

4 réponses

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
12 janv. 2009 à 14:10
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
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
12 janv. 2009 à 17:02
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
12 janv. 2009 à 14:14
Ou tout simplement :
sed -n 4p /tmp/stat.out 

Cdlt
0
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
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 840
12 janv. 2009 à 18:51
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
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 janv. 2009 à 09:49
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