Script shell: avant derniere ligne 2 colonnes

Résolu/Fermé
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 - 23 avril 2009 à 14:24
snow_frog Messages postés 216 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 26 juin 2020 - 23 avril 2009 à 14:54
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.
A voir également:

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
23 avril 2009 à 14:32
Salut,
tail $i | sed -n '9 s/.* //p'

ou

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