[Shell] Modification de caracteres

Bonjour, voiçi une ligne d'un fichier :
2004/02/14 16:45:45.6     51.5263   16.1589      2.0    EMSC      00000165

Je voudrais placer un " f " au 22ième caractère. Je voudrais le faire automatiquement car c'est à appliquer à plusieur fichiers.
A la fin j'aimerais obtenir :
2004/02/14 16:45:45.6 f   51.5263   16.1589      2.0    EMSC      00000165


Quelqu'un à une idée ? peut-être avec sed mais je n'ai pas de caractère d'origine à remplacer puisque c'est un espace :(

Merçi d'avance.
Configuration: Windows XP
Firefox 2.0.0.4

5 réponses

  1. HA HA ! Super ! Ca marche nickel chrome.

    Merçi beaucoup Jipicy, j'y arrivais pas du tout.

    Phil.
    0
    1. Modérateur
      Supprime l'option "-r" et protège les accolades et les parenthèses avec des antislahs :
      sed  's/^\(.\{21\}\)/\1 f/' plop
      ;-))
      0
      1. Merçi les gars d'avoir répondu aussi rapidement mais ça ne marche pas chez moi.
        Si je met l'option -r j'ai le message : --r illegal option. Mauvaise version de sed ??!
        j'ai essayé en mettant d'autre lettre mais j'ai le message command garbled.
        Bon, je vais continuer dans cette voie en fouillant le man mais si vous avez une idée du problème n'hésitez pas à m'en faire part.

        Merçi d'avance.

        A plus :)
        0
        1. Modérateur
          Salut,

          Essaie ça :
          jp@MDK:~/tmpfs ssh$ cat plop
          
          2004/02/14 16:45:45.6     51.5263   16.1589      2.0    EMSC      00000165
          
          jp@MDK:~/tmpfs ssh$ sed -r 's/(^.{21})(.*)/\1 f\2/' plop
          
          2004/02/14 16:45:45.6 f     51.5263   16.1589      2.0    EMSC      00000165
          
          jp@MDK:~/tmpfs ssh$
          ;-))
          0
          1. Modérateur
            Salut,

            sed -r 's/(^.{21})(.*)/\1 f\2/' plop
            P'tite question :-)

            ça ne suffit pas comme ça?
             sed -r 's/^(.{21})/\1 f/' plop

            et pourquoi capturer le début de ligne qui est une assertion de largeur nulle ?

            Voilà ça fait 2 p'tites questions? :-))
            0
          2. Modérateur
            @lami20jSalut,

            1 - Oui

            2 - Parce que ça me plaît et que je suis pas une faignasse de Perlien môa ! NaméO ! ;-DDD

            Bien vu ;-)
            0
        2. Salut,

          Voici une piste avec awk (peut-être un peu barbare mais bon ...)

          awk '
            {Chaine1=substr($0,1,21)
             Chaine2=substr($0,23)
             print "Initial : "$0
             print "Modifier : "Chaine1"f"Chaine2
             print "\n"}
          ' fictest.txt
          


          Bon courage

          Gorki
          0