IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

SED : insertion de X caractères tous les Y caractéres.


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Par défaut SED : insertion de X caractères tous les Y caractéres.
    Bonjour,

    Sur un fichier txt dont le contenu est organisé de cette manière :
    ZZZ ;6109 ;51880\E ;OUVRANT ;12100046016;2354
    ZZZ ;6109 ;02523\A ;DORMANT ;12100046038;2647
    ...

    Je souhaite insérer la valeur 22000 devant la valeur du 6e champs (donc devant 2354 et 2647 pour l'exemple)

    J'y arrive de cette manière :
    sed "s/^............................................................../&22600/"

    Je dois pouvoir éviter la saisie de ces 62 points..non ?

    ou mieux, insérer mon 22600 après le 5e séparateur de champs ";" ? mais je ne sais pas comment faire..et je ne trouve pas..

    Merci de vos avis.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ cat plop 
    ZZZ ;6109 ;51880\E ;OUVRANT ;12100046016;2354
    ZZZ ;6109 ;02523\A ;DORMANT ;12100046038;2647
     
    $ sed 's/;/&22000/5' plop 
    ZZZ ;6109 ;51880\E ;OUVRANT ;12100046016;220002354
    ZZZ ;6109 ;02523\A ;DORMANT ;12100046038;220002647
     
    $

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Par défaut
    Merci,
    Nickel comme ça !

    Pour ma culture.. dans ma version, je suppose qu'on peut éviter la saisie des 62 points par autre chose ? sûrement...

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Citation Envoyé par hornikar Voir le message
    Pour ma culture.. dans ma version, je suppose qu'on peut éviter la saisie des 62 points par autre chose ? sûrement...
    Yes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ sed 's/^.\{41\}/&22000/' plop 
    ZZZ ;6109 ;51880\E ;OUVRANT ;12100046016;220002354
    ZZZ ;6109 ;02523\A ;DORMANT ;12100046038;220002647
     
    $

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2011
    Messages : 3
    Par défaut
    Que demande le peuple...
    Merci à toi.

Discussions similaires

  1. insertion caractère tous les 2 caractères.
    Par slybreiz dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2012, 14h47
  2. Réponses: 22
    Dernier message: 13/11/2011, 19h05
  3. Réponses: 23
    Dernier message: 23/03/2011, 15h41
  4. couper tous les 50 caractères
    Par franfr57 dans le forum Langage
    Réponses: 1
    Dernier message: 02/05/2007, 10h01
  5. Réponses: 2
    Dernier message: 16/08/2006, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo