Substitution / plusieurs solutions ?

Résolu
Bonjour,

j'ai un fichier "new" contenant une ligne de chiffres:
123456

je souhaite pouvoir insérer un espace entre les 3 premiers et les 3 derniers de sorte que l'on obtienne :
123 456

j'ai trouvé la solution avec SED, grâce à ce tutoriel bien sympa =>
http://www.commentcamarche.net/faq/sujet 9559 sed introduction a sed part ii

=> sed 's/\([0-9]\)\{3\}/& /' new

auriez vous d'autres façons "plus simples" par hasard, de faire cette opération que ce soit avec sed ou avec une autre commande ?

Merci merci
++
Poulpoul
Configuration: Ubuntu 7.10

5 réponses

  1. Ben avec sed, c'est déjà tres simple. Tu vas avoir du mal à faire plus simple!
    1. Modérateur
      Salut,

      D'autres variantes (vu que tu as seulement des chiffres)
      lami20j@debian:~/trash$ cat a
      123456
      123456
      123456
      lami20j@debian:~/trash$ sed 's/\(.\{3\}\)/\1 /' a
      123 456
      123 456
      123 456
      lami20j@debian:~/trash$ perl -ne's/^(.{3})/$1 /;print' a
      123 456
      123 456
      123 456
      
      1. ah ... d'accord ..
        je pensais que je me compliquais un peu la vie,
        je pensais qu'il existait une autre solution avec cut ou un autre outil par exemple ...

        ++
        Poulpoul
        1. Bonjour,

          lami20j@debian:~/trash$ sed 's/\(.\{3\}\)/\1 /' a
          123 456
          123 456
          123 456

          intéressant cette solution merci

          ++
          Poulpoul
          1. Modérateur
            Salut,

            Ce qui revient au même que :
            sed 's/.\{3\}/& /'
            ;-))
        2. yop,

          ah oui fatalement, pas bête, c'est simplifié au max là

          encore merci

          ++