Tester la présence de majiscules en bash

Résolu/Fermé
sg - 20 janv. 2012 à 10:29
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 24 janv. 2012 à 08:14
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
A voir également:

3 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
20 janv. 2012 à 12:12
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
Utilisateur anonyme
20 janv. 2012 à 13:29
oui, c'est malin ça :)

le * ne sert pas, cependant.
0
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
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
24 janv. 2012 à 08:14
${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
en script bah merci
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
20 janv. 2012 à 10:39
Salut,

Regarde ce post : Filtrer une variable, c'est le même principe ;-))
0
laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 350
20 janv. 2012 à 11:25
Bonjour Zipe31,

Juste pour jouer :

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

j'ai bon ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
20 janv. 2012 à 11:30
Ben non ;-((

Que vient faire le cat ?
Pourquoi "||" ?
0
laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 350
20 janv. 2012 à 11:39
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
laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 350
20 janv. 2012 à 11:42
Plutôt que cat fichier | egrep ...

egrep '[A-Z]' fichier

est plus correcte, non ?
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 418
20 janv. 2012 à 11:43
Ben voui ;-)
0