Récupérer les valeurs de deux champs

mahamah -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      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
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      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