Script shell: avant derniere ligne 2 colonnes

Résolu/Fermé
Signaler
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
-
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
-
Bonjour,


après une petite recherche sur le forum, j'ai trouvé une partie de la réponsé à mon probleme mais il me manque un petit morceau...

Je voudrais pouvoir récupérer la valeur de l'avant dernière ligne de la deuxième colonne

considerons:

cat fichier.txt

0.0,  24
1.0,  25
2.0,  26
[...]
48.0,  27
49.0,  28

cat recup.sh

#!/bin/bash

i="fichier.txt"

AVDERN=$(tail $i | sed -n '9p')   # ce la me donne "48.0  27"

AVDERN=$(cut -d "," -f1 $i 2>/dev/null | tail $i | sed -n '9p') # mais cela ne me prend pas e compte mon cut et m'affiche donc "48.0  27" au lieu de 27



j'ai bien trouvé une solution mais que je trouve peut "élegante":
AVDERN=$(cut -d "," -f1 $i 2>/dev/null | (awk '{print $2 }' $i) 2>/dev/null  | tail -2 | head -1)


de plus une petite question subsidiaire: à quoi correspond le -f1 dans la fonction cut, j'ai beau mettre n'importe quel chiffre, il me donne toujours le même résultats

merci de votre aide.

2 réponses

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 899
Salut,
tail $i | sed -n '9 s/.* //p'

ou

tail $1 |  awk 'NR == 9 {print $2}'
;-))
1
Messages postés
216
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
26 juin 2020
140
merci bien.
0