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 :

incrémenter caractère en ksh


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Août 2007
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 7
    Par défaut incrémenter caractère en ksh
    Bonjour,

    Comment faut-il procéder pour incrémenter un caractère ? J'entends par là que quand je veux incrémenter A c'est pour avoir B...
    et ceci en ksh

    Merci.

  2. #2
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Un caractère quelconque ? Ou juste une lettre ?

    Dans le cas général, et sur 8 bits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tr '\0-\377' '\1-\377\0'

  3. #3
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Citation Envoyé par LLB
    Un caractère quelconque ? Ou juste une lettre ?

    Dans le cas général, et sur 8 bits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tr '\0-\377' '\1-\377\0'
    Pouriez vous etre plus claire sur cette demonstration , en l'etat je ne voit pas pas comment vous obtenez "B" à partir d'une variable egale à "A"

    Merci à vous

  4. #4
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Et Quand vous avez "Z" vous voulez obtenir "A" ?

  5. #5
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Il a dit incrémenter un caractère, pas incrémenter une lettre. rcyril, il faut préciser l'énoncé si ma solution ne convient pas (j'ai suivi le comportement du C, en fait).

    S'il y a que des majuscules sans accent :

  6. #6
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Tu connais le fonctionnement de tr ?
    On donne deux listes de caractères, et tr remplace chaque caractère de la 1ère liste par celui de la 2e liste (à la même position).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tr 'A-F' 'B-FA'
    est équivalent à
    tr 'ABCDEF' 'BCDEFA'
    Ce qui correspond bien à l'incrément. Maintenant, transpose cet exemple entre A et F sur l'ensemble des caractères, de \0 à \377 (= 255, le maximum sur 1 octet).

  7. #7
    Membre chevronné
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Par défaut
    Je m'interesse à ce Post car j'ai un problème assez similaire

    Aussi , j'ai essayé ce qui suit (HP-UX 11 en Ksh)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "A" | tr 'A-Z' 'B-ZA'
    resultat = "B" OK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "B" | tr 'A-Z' 'B-ZA'
    resultat = "¤" KO

    Que donne la commande suivante chez vous ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "A" | tr '\0-\377' '\1-\377\0'

    Merci de votre aide
    Cordialment
    @rgoët

  8. #8
    LLB
    LLB est déconnecté
    Membre émérite
    Inscrit en
    Mars 2002
    Messages
    968
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 968
    Par défaut
    Chez moi, tout fonctionne parfaitement.
    Le dernier exemple m'affiche bien B, suivi d'une tabulation verticale (\v, le caractère après le \n inséré par echo).

    J'avoue ne pas trop comprendre d'où peut venir le problème. Peut-être une version de tr exotique ?
    Mon tr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tr (GNU coreutils) 5.97
    Au pire, s'il faut se limiter à l'alphabet, il reste la possibilité de faire l'expansion à la main (et lister toutes les lettres).

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

Discussions similaires

  1. [ksh]Nombre de caractères dans une chaine
    Par tizilfin dans le forum Linux
    Réponses: 3
    Dernier message: 14/10/2007, 12h51
  2. [Débutant][char]incrémenter caractère
    Par k4eve dans le forum Langage
    Réponses: 5
    Dernier message: 08/08/2007, 12h54
  3. incrémenter un caractère dans une chaine
    Par mathieu.bo dans le forum C
    Réponses: 4
    Dernier message: 15/07/2007, 19h34
  4. Incrémenter des caractères
    Par Isa31 dans le forum Langage
    Réponses: 8
    Dernier message: 14/02/2006, 17h56
  5. Incrémenter un caractère
    Par Samatouk dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/01/2005, 16h06

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