Script pour fichier texte

Liiiili Messages postés 3 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai un fichier de mesure formée par de telles lignes

64 bytes from 2001:18:53cf:c467:560d:5ddc:80fb:8627: icmp_seq=1 ttl=64 time=0.621 ms

J'aimerai le lire ligne par ligne et construire un fichier texte résultat, de telle forme:

#Num T

1 0.621
..... ...

Merci
Configuration: Linux
Firefox 2.0.0.14

3 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    jp@MDK:~/tmpfs ssh$ cat fich.txt
    64 bytes from 2001:18:53cf:c467:560d:5ddc:80fb:8627: icmp_seq=1 ttl=64 time=0.621 ms
    64 bytes from 2001:18:53cf:c467:560d:5ddc:80fb:8627: icmp_seq=1 ttl=64 time=0.628 ms
    64 bytes from 2001:18:53cf:c467:560d:5ddc:80fb:8627: icmp_seq=1 ttl=64 time=0.456 ms
    64 bytes from 2001:18:53cf:c467:560d:5ddc:80fb:8627: icmp_seq=1 ttl=64 time=0.287 ms
    
    jp@MDK:~/tmpfs ssh$ cat foo.sh
    
    #! /bin/bash
    
    count=1
    
    echo -e "# Num\tTime\n" > resultat.txt
    
    while read ligne
    do
    temps=$(sed -n 's/.*=\([^ ]*\).*/\1/p' <<<${ligne})
    echo -e "  $((count++))\t$temps" >> resultat.txt
    done < fich.txt
    
    jp@MDK:~/tmpfs ssh$ ./foo.sh
    
    jp@MDK:~/tmpfs ssh$ cat resultat.txt
    # Num   Time
    
      1     0.621
      2     0.628
      3     0.456
      4     0.287
    
    jp@MDK:~/tmpfs ssh$
    ;-))
    0
  2. eZula Messages postés 3509 Statut Contributeur 392
     
    edité
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    awk -F"[ =]" 'BEGIN{print "Num\tT"} ; {print NR "\t" $(NF-1)}' < fichier.txt

    Num T
    1 0.621
    2 0.622
    3 0.623
    4 0.624
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Pas mieux ;-))

      Merci.
      0