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 :

Remplacement d'un caractère à une position donnée


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 32
    Par défaut Remplacement d'un caractère à une position donnée
    Bonjour à tous,

    J'aimerai modifier le nième caractères de la ligne lorsque le début de la ligne respect un certain critère:

    ex:

    010000001000000000000000000000000000000000000009000000000
    050000002000000000000000000000000000000000000009000000000
    010000003000000000000000000000000000000000000009000000000
    050000004000000000000000000000000000000000000009000000000
    010000001000000000000000000000000000000000000009000000000
    050000002000000000000000000000000000000000000009000000000
    010000003000000000000000000000000000000000000009000000000
    050000004000000000000000000000000000000000000009000000000

    Je souhaiterai que lorsqu'en position 2 le caractère est égal à 5 et en position 9 le caractère est égale à 40, je puisse modifier le caratère 9 par 0 et cela de manière positionnelle.

    Je pensais à awk mais je connais mal cette fonction, avez-vous des pistes?

    Merci à tous ceux qui m'apporterons de l'aide.

  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,

    Si la configuration de ton fichier est la même que celle de ton exemple, alors un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed '/^0500000040/{s/9/0/}' plop
    devrait suffire

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 32
    Par défaut
    Merci pour ta réponse, ça me donne un début mais ce que j'ai omis de mentionner c'est la configuration:

    en réalité je peux avoir différents type de critères:

    050000140
    050200040
    050030040

    et j'aimerai remplacer le 9 de manière positionnel, car la configuration s'avère différente :

    00090
    00099
    00999..

    Est-ce qu'avec sed ont peux combiner plusieurs motifs de recherche et avoir un motif de substitution de manière positionnel?

    Si ça ce trouve je devrais passer par awk.

  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
    Essaies avec ça sed '/^05.\{6\}40/{s/\(.\{47\}\)./\10/}'

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 32
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Essaies avec ça sed '/^05.\{6\}40/{s/\(.\{47\}\)./\10/}'
    Super ! C'est tout à fait ça, je ne savais pas comment je pouvais introduire des critères positionnel avec sed.

    Sed est vraiment ultra puissant mais Zipe31 le surpasse

    Merci Zipe31

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 02/12/2014, 22h25
  2. Réponses: 6
    Dernier message: 10/02/2014, 14h18
  3. Remplacer un caractère à une position donnée
    Par michel42 dans le forum Langage
    Réponses: 7
    Dernier message: 18/04/2012, 15h30
  4. Réponses: 21
    Dernier message: 22/01/2012, 02h19
  5. Extraire un caractère suivant une position donnée
    Par kioka dans le forum Langage
    Réponses: 9
    Dernier message: 21/01/2011, 18h01

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