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 :

remplacer par ex 1 par 00001


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut remplacer par ex 1 par 00001
    bonsoir,
    je cherche à modifier une valeur numérique (par exemple 1, 12...)
    par une valeur incrémentée de 1 mais surtout numérotée sur 5 chiffres
    dans ces cas la 1 devient 00001 (puis 00002) et 10 devient 00010 puis 00011 (l'incrémentation peut être traitée avant)

    grace à la commande sed
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e "s/\([0-9][0-9]*\)/0000\1/" .video_psp
    j'arrive à le faire pour un seul chiffre mais dès l'instant où les chiffres sont plusieurs cela ne marche plus

    merci de votre aide

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Quelle est la structure des données de ton fichier ? Quel shell utilises-tu ?

    Si la ligne contient uniquement la valeur numérique à convertir et que tu utilises ksh, cela devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    typeset -i _num
    typeset -Z5 _val    # Chaîne numérique complétée par des zéros à gauche 
    echo "" > _tmpsed   # Initialiser le fichier de commandes sed
    sort -n -u monfichier | while read _num
    do
        _val=$(( _num++ ))  # Incrémente et convertir en chaîne 
        echo "s:${_num}:${_val}:g" >> _tmpsed   # Ligne de commande sed suivante
    done
    sed  -f _tmpsed monfichier
    (A vérifier quand même )
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre averti
    Inscrit en
    Septembre 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 16
    Par défaut
    Bonjour

    Uiquement pour le format sur n caracteres

    Avec un petit awk

    echo 10 | awk '{printf "%05d\n",$1}'
    10 -> 00010

    echo 1 | awk '{printf "%05d\n",$1}'
    1 -> 00001

    echo <variable à formatter> | awk '{ printf "%0<nombre de zero>d\n,$1 }'

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    merci ca marche

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

Discussions similaires

  1. DB2 Peut-on remplacer le FETCH FIRST par plus performant?
    Par souellet dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/09/2005, 17h07
  2. remplacement d'une valeur par une autre
    Par hugoos dans le forum Langage
    Réponses: 9
    Dernier message: 20/09/2005, 21h43
  3. [XSLT ]remplacement d un caractere par son code
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 02/09/2005, 16h26
  4. Souci pour remplacer les Retours chariot par <BR>
    Par ahage4x4 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/06/2005, 11h24
  5. remplacement caracteres de ponctuation par "_"
    Par LineLe dans le forum ASP
    Réponses: 5
    Dernier message: 22/10/2003, 08h37

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