Script pour fichier texte

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    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$
    ;-))
    1. Contributeur
      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
      1. Modérateur
        Pas mieux ;-))

        Merci.