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 :

reconnaissance du premier caractère d'un mot


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de mptijr
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 408
    Par défaut reconnaissance du premier caractère d'un mot
    bonjour, je suis débutant en programmation bash.

    je me suis donné comme exercice d'écrire un script qui me permettra de déterminer la nature du premier caractère d'un mot saisi par un utilisateur: chiffre, majuscule, minuscule ou autre.

    Merci de votre aide.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Par défaut
    Bonjour,
    Citation Envoyé par mptijr Voir le message
    bonjour, je suis débutant en programmation bash.

    je me suis donné comme exercice d'écrire un script qui me permettra de déterminer la nature du premier caractère d'un mot saisi par un utilisateur: chiffre, majuscule, minuscule ou autre.

    Merci de votre aide.
    je ne sais pas si ceci peux t'aider...si j'étais à ta place j'essayerai d'extaire le premier caractère avec les substitutions de variable ${var:0:1}, et le soumertterait à un test avec case esac et je veriferais le type avec un grep

  3. #3
    Membre chevronné Avatar de mptijr
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 408
    Par défaut
    merci mon pote pour ta réponse.

    j'aimerais savoir la signification de cette substitution: $(var:0:1).

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 859
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par mptijr Voir le message
    merci mon pote pour ta réponse.

    j'aimerais savoir la signification de cette substitution: $(var:0:1).
    Déjà, la syntaxe n'est pas $(var:0:1) mais ${var:0:1}. Il serait judicieux de commencer par télécharger, imprimer et lire un tuto shell. Tu peux télécharger le mien ici

    Sinon, pour répondre à ta question, l'expression ${var:n:m} te renvoie m caractères pris à partir de la positions n (les positions étant numérotées à partir de 0).

    Citation Envoyé par mptijr Voir le message
    nature du premier caractère d'un mot saisi par un utilisateur: chiffre, majuscule, minuscule ou autre.
    Focalise-toi sur case/esac en utilisant astucieusement les expressions régulières
    Exemple
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case $var in
        [0-9]) echo "$var est un chiffre";;
        *) echo "$var n'est pas un chiffre"
    esac

    Citation Envoyé par saw-next Voir le message
    ...et je veriferais le type avec un grep
    Intéressant. Je serais curieux de connaitre l'idée que t'as en tête...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 106
    Par défaut
    Citation Envoyé par Sve@r Voir le message

    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case $var in
        [0-9]) echo "$var est un chiffre";;
        *) echo "$var n'est pas un chiffre"
    esac


    Intéressant. Je serais curieux de connaitre l'idée que t'as en tête...
    Bonjour

    je ne sais pas si ça marche, avec une expression à évaluer dans les propriétés de l'instruction case esac mais c'est la première chose qui m'a été venu à l'esprit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    case $var in
        `grep [0-9] $var` ) echo "$var est un chiffre";;
        `grep [a-z] $var` ) echo "$var est une lettre minuscule";;
        `grep [A-Z] $var` ) echo "$var est une lettre majuscule";;
                               *) echo "$var est autre"
    esac

  6. #6
    Membre chevronné Avatar de mptijr
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 408
    Par défaut
    Citation Envoyé par saw-next Voir le message
    Bonjour

    je ne sais pas si ça marche, avec une expression à évaluer dans les propriétés de l'instruction case esac mais c'est la première chose qui m'a été venu à l'esprit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    case $var in
        `grep [0-9] $var` ) echo "$var est un chiffre";;
        `grep [a-z] $var` ) echo "$var est une lettre minuscule";;
        `grep [A-Z] $var` ) echo "$var est une lettre majuscule";;
                               *) echo "$var est autre"
    esac
    merci pour vos réponses: je suis en train de lire un doc du site et je m'entraîne progressivement.

    je pense que concernant les majuscules, il faudra utiliser l'expression [[:upper:]] et pour les minuscules [[:lower:]] des tests:

    voici une proposition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    #!/bin/bash
    read -p "veuillez saisir un mot SVP" mot
    case $mot in
            [[:digit]]* $mot) echo "$mot commence par un chiffre;;
            [[:lower]]* $mot) echo "$mot commence par une minuscule;;
            [[:upper]]* $mot) echo "$mot commence par une majuscule;;
            *) echo "$mot commence par autre chose"
    esac

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

Discussions similaires

  1. [AC-2003] mise en gras du premier caractère d'un mot
    Par ygsi5355 dans le forum IHM
    Réponses: 4
    Dernier message: 14/12/2010, 06h43
  2. Réponses: 4
    Dernier message: 03/07/2009, 09h45
  3. Réponses: 5
    Dernier message: 30/10/2006, 13h37
  4. Selection des x premiers caractères dans un champ précis
    Par Schulman dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/01/2005, 09h23
  5. Réponses: 2
    Dernier message: 04/09/2004, 10h53

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