Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 18-07-2015 09:23:03

Slyfox
Membre
Lieu : Pays du chocolat
Distrib. : GNU/Linux Debian Sid
Noyau : Linux 4.7.0-1-amd64
(G)UI : MATE
Inscription : 15-12-2013

[Résolu]AWK: récuperer champs après toujours même chaîne de caractères

Bonjour,

J'ai un exemple de texte:

toto 20 34
23 toto 34 56
34 56 45 toto 63 56



Et j'aimerais toujours récupérer avec AWK le champs après toto (1er ligne 20, 2ème ligne 34 et 3ème ligne 63 dans mon exemple)

Dernière modification par Slyfox (19-07-2015 21:06:27)

Hors ligne

#2 18-07-2015 10:24:41

captnfab
Admin-Girafe
Lieu : /dev/random
Distrib. : Debian Stretch/Sid/Rc-Buggy
Noyau : Linux (≥ 4.3)
(G)UI : i3-wm (≥ 4.11)
Inscription : 07-07-2008
Site Web

Re : [Résolu]AWK: récuperer champs après toujours même chaîne de caractères

Plop,
Avec Awk, je ne sais pas faire.
Avec sed :

sed -n 's/.*\<toto[[:space:]]\+\([^[:space:]]\+\).*/\1/p'


captnfab,
Association Debian-Facile, bépo.
TheDoctor: Your wish is my command… But be careful what you wish for.

Hors ligne

#3 19-07-2015 06:53:19

D@mien
Membre
Distrib. : Gnoulinusque
Noyau : Linux 4\.[7-9]+(\.\d+)?-[1-9]+-custom
(G)UI : i3
Inscription : 22-03-2014

Re : [Résolu]AWK: récuperer champs après toujours même chaîne de caractères

Salut
Pas habituer de awk, donc c'est peut être pas la solution la plus concise smile


{
    for (i=1; i < NF; i++){
        if ($i == "toto"){ print $(i + 1) }    
    }    
}
 


% cat /usr/include/sys/errno.h
#define EPERM           1               /* Operation not permitted */
[...]
#define EMACS           666             /* Too many macros */

Hors ligne

#4 19-07-2015 21:05:28

Slyfox
Membre
Lieu : Pays du chocolat
Distrib. : GNU/Linux Debian Sid
Noyau : Linux 4.7.0-1-amd64
(G)UI : MATE
Inscription : 15-12-2013

Re : [Résolu]AWK: récuperer champs après toujours même chaîne de caractères

Merci à vous deux pour votre aide.

Pour info il y a aussi cette possibilité qui m'a été donné sur un autre forum.

awk '/toto/ {sub(/^.* *toto/, ""); print $1}' fichier_toto



Mais la solution de D@mien me semble bien aussi ! smile

La solution de l'ami captnfab est certes bien aussi, mais je ne me sert pas vraiment de SED par manque de connaissance à ce sujet, mais pourra peut-être utile à quelqu'un d'autre ! smile

Dernière modification par Slyfox (19-07-2015 21:08:21)

Hors ligne

#5 19-07-2015 21:11:27

paskal
autobahn
Lieu : ailleurs
Inscription : 14-06-2011
Site Web

Re : [Résolu]AWK: récuperer champs après toujours même chaîne de caractères

Élégant  cool

I'd love to change the world
But I don't know what to do
So I'll leave it up to you...

logo-sur-fond.png

Hors ligne

Pied de page des forums