Champ de x caractères

Résolu
Bonjour,

J'ai un fichier de log que je souhaiterai exploiter. Dans ce fichier, il y a 4 champs bien définis et je souhaiterai que chacun de ces champs fassent 10 caractères.
Est-ce possible ? Si oui, comment faire ?

Merci d'avance

Elgringo
Configuration: Windows XP
Firefox 3.0.3

5 réponses

  1. voici les différents champs --> Date, Time, IND_cpu_time_rate, IND_memory_occup_rate
    le fichier apparait comme ceci en faisant vi.

    Date Time IND_cpu_time_rate IND_memory_occup_rate
    9/23/2008 11:30:3 0.3
    9/23/2008 11:30:4 99.4815
    9/23/2008 11:31:3 0.454091
    9/23/2008 11:31:3 99.4811
    9/23/2008 11:32:1 99.4811
    9/23/2008 11:32:4 0.335955
    9/23/2008 11:33:3 0.470259
    9/23/2008 11:33:3 99.4809
    9/23/2008 11:34:1 0.24569
    9/23/2008 11:34:4 99.4703
    9/23/2008 11:35:6 0.276838
    9/23/2008 11:35:6 99.4713
    9/23/2008 11:36:1 0.350064
    9/23/2008 11:36:4 99.4142
    9/23/2008 11:37:1 0.0
    9/23/2008 11:37:4 99.4134
    9/23/2008 11:38:3 0.688961
    9/23/2008 11:38:3 99.413
    9/23/2008 11:39:1 99.413
    9/23/2008 11:39:3 0.424929
    9/23/2008 11:40:1 99.4129
    9/23/2008 11:40:4 0.612398
    9/23/2008 11:41:1 99.4139
    9/23/2008 11:41:1 0.206861
    9/23/2008 11:42:1 99.414
    1. Je n'ai pas précisé mais les valeurs du champ IND_cpu_time_rate sont autour de 0,....... et celles du champ IND_memory_occup_rate sont autour de 99,.......

      Normalement ces champs sont bien définis mais ici, ils apparaissent comme un seul (exactement comme sous excel) et je souhaiterai résoudre ce problème.
      1. Modérateur
        Salut,

        tu veux quelque chose de ce genre?
        $ cat elgringo
        9/23/2008 11:30:3 0.3
        9/23/2008 11:30:4 99.4815
        9/23/2008 11:31:3 0.454091
        9/23/2008 11:31:3 99.4811
        9/23/2008 11:32:1 99.4811
        9/23/2008 11:32:4 0.335955
        9/23/2008 11:33:3 0.470259
        9/23/2008 11:33:3 99.4809
        9/23/2008 11:34:1 0.24569
        9/23/2008 11:34:4 99.4703
        9/23/2008 11:35:6 0.276838
        9/23/2008 11:35:6 99.4713
        9/23/2008 11:36:1 0.350064
        9/23/2008 11:36:4 99.4142
        9/23/2008 11:37:1 0.0
        9/23/2008 11:37:4 99.4134
        9/23/2008 11:38:3 0.688961
        9/23/2008 11:38:3 99.413
        9/23/2008 11:39:1 99.413
        9/23/2008 11:39:3 0.424929
        9/23/2008 11:40:1 99.4129
        9/23/2008 11:40:4 0.612398
        9/23/2008 11:41:1 99.4139
        9/23/2008 11:41:1 0.206861
        9/23/2008 11:42:1 99.414
        $ perl -ne '($x,$y,$z)=split /\s/,$_;print $x," "x(10-length($x)),$y," "x(10-length($y)),$z,"\n" if $z=~/^0/;print $x," "x(10-length($x)),$y," "x(20-length($y)),$z,"\n" if $z=~/^9/' elgringo
        9/23/2008 11:30:3   0.3
        9/23/2008 11:30:4             99.4815
        9/23/2008 11:31:3   0.454091
        9/23/2008 11:31:3             99.4811
        9/23/2008 11:32:1             99.4811
        9/23/2008 11:32:4   0.335955
        9/23/2008 11:33:3   0.470259
        9/23/2008 11:33:3             99.4809
        9/23/2008 11:34:1   0.24569
        9/23/2008 11:34:4             99.4703
        9/23/2008 11:35:6   0.276838
        9/23/2008 11:35:6             99.4713
        9/23/2008 11:36:1   0.350064
        9/23/2008 11:36:4             99.4142
        9/23/2008 11:37:1   0.0
        9/23/2008 11:37:4             99.4134
        9/23/2008 11:38:3   0.688961
        9/23/2008 11:38:3             99.413
        9/23/2008 11:39:1             99.413
        9/23/2008 11:39:3   0.424929
        9/23/2008 11:40:1             99.4129
        9/23/2008 11:40:4   0.612398
        9/23/2008 11:41:1             99.4139
        9/23/2008 11:41:1   0.206861
        9/23/2008 11:42:1             99.414
        
        1. Modérateur
          Re,

          Avec printf
          $ perl -ne '($x,$y,$z)=split /\s/,$_;$z=~/^0/?printf "%-10s%-10s%-10s\n",$x,$y,$z:printf "%-10s%-10s%-10s%-10s\n",$x,$y,"",$z' elgringo
          9/23/2008 11:30:3   0.3
          9/23/2008 11:30:4             99.4815
          9/23/2008 11:31:3   0.454091
          9/23/2008 11:31:3             99.4811
          9/23/2008 11:32:1             99.4811
          9/23/2008 11:32:4   0.335955
          9/23/2008 11:33:3   0.470259
          9/23/2008 11:33:3             99.4809
          9/23/2008 11:34:1   0.24569
          9/23/2008 11:34:4             99.4703
          9/23/2008 11:35:6   0.276838
          9/23/2008 11:35:6             99.4713
          9/23/2008 11:36:1   0.350064
          9/23/2008 11:36:4             99.4142
          9/23/2008 11:37:1   0.0
          9/23/2008 11:37:4             99.4134
          9/23/2008 11:38:3   0.688961
          9/23/2008 11:38:3             99.413
          9/23/2008 11:39:1             99.413
          9/23/2008 11:39:3   0.424929
          9/23/2008 11:40:1             99.4129
          9/23/2008 11:40:4   0.612398
          9/23/2008 11:41:1             99.4139
          9/23/2008 11:41:1   0.206861
          9/23/2008 11:42:1             99.414
          
          1. Voila c'est cela que je voulais obtenir. Le troisième champ et le quatrième était confondue donc pour récuperer les valeurs cela aurait été bien long a faire...
            en tout cas,
            Merci bienlami20j

            Elgringo