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

Linux Discussion :

Tester le dernier caractere d'une chaine de caractere et le remplacer.


Sujet :

Linux

  1. #1
    Membre habitué Avatar de Jazz_
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 290
    Points : 190
    Points
    190
    Par défaut Tester le dernier caractere d'une chaine de caractere et le remplacer.
    Bonjour,

    J'ai un nouveau problemme, je cherche a tester la valeur du dernier caractere d'une chaine, mais je ne sais pas sa longueur, et j'aimerais aussi pouvoir l'effacer.

    je pensais essayer d'obtenir sa longueur pour pouvoir faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if [ `echo ${val} | cut -c$longueur` = '$' ];then
                val=${val#\$}
    fi
    (mais j'ignore si ca fonctionne bien)

    par exemple:
    bonjour$ - > bonjour

    peutetre au'il y a un moyen plus simple.

    Merci d'avance.

    PS :Je pense a utiliser wc -c pour avoir sa longueur, mais je ne sais si il est possible de recuperer sa valeur de retour de maniere numerique
    Détendez-vous...

  2. #2
    Membre habitué Avatar de Jazz_
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 290
    Points : 190
    Points
    190
    Par défaut
    Bon, j'ai trouve' comment tester le caractere. mais pas comment l'effacer,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #!/bin/sh                                                                      
     
    expr=$1
     
    if [ `echo ${expr:$((${#expr}-1))}`  = '$' ]; # bon
    then
        expr=${expr#\$} # pas bon
    fi
     
    echo $expr
    Détendez-vous...

  3. #3
    Membre habitué Avatar de Jazz_
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 290
    Points : 190
    Points
    190
    Par défaut
    j'ai trouve' ca sur le man bash,

    ${paramètre:début:longueur}
    Extraction de sous-chaîne

    mais du coup il me faut la longueur de la chaine...
    Détendez-vous...

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 392
    Points
    19 392
    Par défaut
    nonon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var='bla$'
     
    [ "${var: -1}" = '$' ] && echo ok || echo KO
    ok
    c'est tout.
    (enfin, tu mets les if...then...else...fi, bien sûr)

    l'espace, entre : et -1, est important pour que bash ne confonde pas avec une variable non assignée ou vide.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre habitué Avatar de Jazz_
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 290
    Points : 190
    Points
    190
    Par défaut
    J'ai trouve'

    ${#expr}

    .
    Détendez-vous...

  6. #6
    Membre averti
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Points : 328
    Points
    328
    Par défaut
    Bonjour,

    Il y a aussi la possibilité du sed, il est assez bien approprié pour ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $chaine | sed -e '/\$$/s/\$$//'
    Lilian.

  7. #7
    Membre habitué Avatar de Jazz_
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juillet 2010
    Messages : 290
    Points : 190
    Points
    190
    Par défaut
    Merci
    Détendez-vous...

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/01/2011, 18h20
  2. Réponses: 13
    Dernier message: 18/01/2008, 19h53
  3. erreur pour une insertion d'une chaine de caractere dans une cellule
    Par amel95140 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/10/2006, 09h09
  4. Extraire le premier caractere d'une chaine de caractere
    Par Shikamaru86 dans le forum C++Builder
    Réponses: 6
    Dernier message: 21/09/2006, 09h14
  5. Réponses: 2
    Dernier message: 04/11/2005, 11h35

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