Tester la présence de majiscules en bash

Résolu
sg -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'ai cherché sur google mais je n'ai pas trouver. je cherche un moyen de verifier si dans une chaine de caractère il y a des lettres majiscules en gro le test merci

3 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    $ var=AAaa
    $ [[ "$var" != "${var,,*}" ]] && echo $var contient une ou des majuscules
    AAaa contient une ou des majuscules
    $ var=bbbb
    $ [[ "$var" != "${var,,*}" ]] && echo $var contient une ou des majuscules
    $ 
    2
    1. Utilisateur anonyme
       
      oui, c'est malin ça :)

      le * ne sert pas, cependant.
      0
    2. sg
       
      merci a tous surtout a dubeck c'est exactement ce que je cherchais même si je n'ai pas vraiment compris la syntaxe des choses entre parenthèses
      0
    3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      ${var,,*} converti (voir man bash) $var entièrement en minuscules, on teste avec $var, si c'est inégal, c'est qu'au moins une des lettres de $var a été convertrie, donc $var contient une ou des majuscules
      0
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Regarde ce post : Filtrer une variable, c'est le même principe ;-))
    0
    1. laoshu Messages postés 1251 Statut Membre 351
       
      Bonjour Zipe31,

      Juste pour jouer :

      echo $variable || cat fichier | egrep '[A-Z]'

      j'ai bon ?
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ben non ;-((

      Que vient faire le cat ?
      Pourquoi "||" ?
      0
    3. laoshu Messages postés 1251 Statut Membre 351
       
      C'était une simplification certes abusive de ma part...

      echo $variable | egrep '[A-Z]' #si la chaine est une variable
      cat fichier | egrep '[A-Z]' #si la chaine est un fichier

      En principe ont sait si la chaine est un fichier ou une variable avant de passer la commande... Mon "||" était pour indiquer l'un ou l'autre. Il me semble que ça pourrait marché ceci dit, quoi qu'inutilement long dans la pratique...
      0
    4. laoshu Messages postés 1251 Statut Membre 351
       
      Plutôt que cat fichier | egrep ...

      egrep '[A-Z]' fichier

      est plus correcte, non ?
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ben voui ;-)
      0