Récupérer les valeurs de deux champs

Fermé
mahamah - 4 déc. 2013 à 22:32
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 - 5 déc. 2013 à 10:37
Bonjour,
Je travaille avec le fichier simple.txt
X INF_BUF ID 0 B 0 SIZE 1490 SRC 1 DST 2 T 0.1 0
TX INF_BUF ID 1 B 0 SIZE 776 SRC 1 DST 2 T 0.1 0
RX INF_BUF ID 0 B 0 SIZE 1490 SRC -1 DST 2 D 0.001 0
RX INF_BUF ID 1 B 0 SIZE 776 SRC -1 DST 2 D 0.001 0
TX INF_BUF ID 2 B 0 SIZE 1490 SRC 1 DST 2 T 0.101 0
TX INF_BUF ID 3 B 0 SIZE 776 SRC 1 DST 2 T 0.101 0
RX INF_BUF ID 2 B 0 SIZE 1490 SRC -1 DST 2 D 0.001 0
RX INF_BUF ID 3 B 0 SIZE 776 SRC -1 DST 2 D 0.001 0
TX INF_BUF ID 4 B 0 SIZE 1490 SRC 1 DST 2 T 0.102 0
TX INF_BUF ID 5 B 0 SIZE 776 SRC 1 DST 2 T 0.102 0
RX INF_BUF ID 4 B 0 SIZE 1490 SRC -1 DST 2 D 0.001 0
RX INF_BUF ID 5 B 0 SIZE 776 SRC -1 DST 2 D 0.001 0
TX INF_BUF ID 6 B 0 SIZE 1490 SRC 1 DST 2 T 0.103 0
TX INF_BUF ID 7 B 0 SIZE 776 SRC 1 DST 2 T 0.103 0
RX INF_BUF ID 6 B 0 SIZE 1490 SRC -1 DST 2 D 0.001 0
RX INF_BUF ID 7 B 0 SIZE 776 SRC -1 DST 2 D 0.001 0
TX INF_BUF ID 8 B 0 SIZE 1490 SRC 1 DST 2 T 0.104 0


MOn but est de récupérer le champ 13=T et sa valeur correspondante dans le champ 14 .(Je veux récupérer T et la valeur correspondante dans le champ 14).
Merci pour votre aide

1 réponse

dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
5 déc. 2013 à 08:35
hello
$ while read T VAL ; do echo $T = $VAL; done <<<"$(awk '{print $13, $14}' fichier)"
T = 0.1
T = 0.1
D = 0.001
D = 0.001
T = 0.101
T = 0.101
D = 0.001
D = 0.001
T = 0.102
T = 0.102
D = 0.001
D = 0.001
T = 0.103
T = 0.103
D = 0.001
D = 0.001
T = 0.104
$
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 415
5 déc. 2013 à 09:55
Salut,

Euh... tu ne t'es pas un peu compliqué la vie là ? ;-))

Si j'ai bien compris, un simple
awk '$13 ~ /T/ { print $13,$14 }' fichier
devrait suffire, non ?

$ awk '$13 ~ /T/ { print $13,$14 }' plop 
T 0.1
T 0.1
T 0.101
T 0.101
T 0.102
T 0.102
T 0.103
T 0.103
T 0.104
0
dubcek Messages postés 18744 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 4 septembre 2024 5 617
Modifié par dubcek le 5/12/2013 à 10:41
si il veut traiter les résultats dans le shell grâce aux formidables variables T et VAR ou un simple affichage, that is the question ...
mais j'ai oublié le test 13=T
while read T VAL ; do echo $T = $VAL; done <<<"$(awk '$13 ~/T/ {print $13, $14}' 
0