Pages : 1
#1 Le 24/03/2021, à 14:56
- ar barzh paour

classe de caractères alpha
je ne sais pas trop dans quelle rubrique poster
alnum alpha ascii blank cntrl digit graph lower
print punct space upper word xdigitje cherche à quoi correspond exactement ces class
qui renvoient vers POSIX standard , mais je n'arrive pas à y trouver une réponse
Within ‘[’ and ‘]’, character classes can be specified using the syntax [:class:], where class is one of the following classes defined in the POSIX standard:
bêtement par exemple
[:alpha:] "n'importe quelle lettre"
je pensais que c'était équivalent à - [A-Za-z]
mais il semble bien que non d'après ce qui suit
dans un terminal
function cas_particuliers {
case "$1" in
[[:alpha:]] ) echo "alpha " ;; # a-z A-Z
[[:digit:]] ) echo "digit " ;; # 0-9
[[:punct:]] ) echo "punct " ;; # [!-/ :-@ [-` {-~]
[[:space:]] ) echo "space " ;; # [ \t\v\f]
* ) echo "NT" ;;
esac
return
}echo -n "$(cas_particuliers "é")"
alphaé me renvoie alpha , ce qui semble bien indiquer que "é" est dans alpha
avez-vous une réponse à me fournir?
PC : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz + 4GiB RAM DDR4-2400 Ubuntu 20.04 , 18.04 22.04 (test)
Portable1 : Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 20.04 ( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#2 Le 24/03/2021, à 15:05
- kamaris

Re : classe de caractères alpha
Ça dépend de la locale :
$ export LC_ALL=C
$ echo -n "$(cas_particuliers "é")"
NTEn ligne
#3 Le 24/03/2021, à 16:04
- ar barzh paour

Re : classe de caractères alpha
ok
jpb@U20-04-e3:~$ locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
jpb@U20-04-e3:~$ je n'ai rien dans LC_ALL
c'est ce qui fait que é fait partie de alpha ?
je vais essayer de fouiller
Dernière modification par ar barzh paour (Le 24/03/2021, à 16:04)
PC : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz + 4GiB RAM DDR4-2400 Ubuntu 20.04 , 18.04 22.04 (test)
Portable1 : Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 20.04 ( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#4 Le 24/03/2021, à 16:10
- kamaris

Re : classe de caractères alpha
LC_ALL n'est pas définie par défaut, si tu la renseignes elle donne sa valeur à toutes les variables LC_* qui précèdent, d'où son nom.
En l'occurrence, la variable d'intérêt est LANG, sur laquelle LC_ALL a priorité si je me souviens bien, alors même que LANG apparait toujours en français dans le retour de la commande locale après export de LC_ALL.
En français, « é » est un caractère de la classe de « e » et donc de la classe « alpha », pas en anglais (qui correspond à C, la langue système par défaut).
Dernière modification par kamaris (Le 24/03/2021, à 16:33)
En ligne
#5 Le 24/03/2021, à 16:33
- MicP
Re : classe de caractères alpha
Bonjour
Quelques liens :
https://unicode-org.github.io/icu/userg … er-classes
https://pubs.opengroup.org/onlinepubs/9 … hap09.html
EDIT : correction du premier lien cité dans ce message.
Dernière modification par MicP (Le 27/03/2021, à 14:05)
Hors ligne
#6 Le 27/03/2021, à 13:41
- ar barzh paour

Re : classe de caractères alpha
@MicP
merci pour les liens , j'ai de la lecture !!!!!!
le premier doit être celui-ci en fait
https://unicode-org.github.io/icu/userg … er-classes
Dernière modification par ar barzh paour (Le 27/03/2021, à 13:43)
PC : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz + 4GiB RAM DDR4-2400 Ubuntu 20.04 , 18.04 22.04 (test)
Portable1 : Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 20.04 ( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#7 Le 27/03/2021, à 14:03
- MicP
Re : classe de caractères alpha
…le premier doit être celui-ci en fait
https://unicode-org.github.io/icu/userg … er-classes
Oui, c'est ça. Bien vu ![]()
Je corrige le lien dans mon précédent message.
Merci.
Dernière modification par MicP (Le 27/03/2021, à 14:03)
Hors ligne
#8 Le 28/03/2021, à 11:02
- LeoMajor
Re : classe de caractères alpha
bonjour,
:~$ sed -r 's/[[=e=]]|[[=o=]]/?/g'<<<"Ô Être évêque à l'île de Tahïti"
? ?tr? ?v?qu? à l'îl? d? Tahïti
:~$ a="ça alors ?!"; [[ "$a" =~ [[=c=]] ]] && echo "c/C et ses diacritiques"
c/C et ses diacritiques
:~$ sed -r 's/[[='$'\u0153''=]]|[[=a=]]/?/g'<<<"L'Œuf de Pâques"
L'?uf de P?ques
:~$ printf "\u0152\u0153\n"
ŒœHors ligne
#9 Le 10/10/2021, à 05:45
- ar barzh paour

Re : classe de caractères alpha
@MicP
la documentation est complète
mais après quelques heures de lecture , je reste sur ma faim , cela dépasse mes compétences ...
plus simplement je vais me faire un batch qui me dira dans quel catégorie se classe un caractère ... sur mon PC perso
batch en cours de réalisation .... d'ici la fin de l'année sans doute
@LeoMajor , d'après les posts précédents le résultat dépend des variables LC_xxxx
sed -r 's/[[=e=]]|[[=o=]]/?/g'<<<"Ô Être évêque à l'île de Tahïti"
Ô Êtr? évêqu? à l'îl? d? TahïtiDernière modification par ar barzh paour (Le 04/11/2021, à 13:28)
PC : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz + 4GiB RAM DDR4-2400 Ubuntu 20.04 , 18.04 22.04 (test)
Portable1 : Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 20.04 ( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#10 Le 10/10/2021, à 06:14
- ar barzh paour

Re : classe de caractères alpha
function test_car {
case "$1" in
[[:upper:]] ) echo "upper" ;;&
[[:lower:]] ) echo "lower" ;;&
[[:alpha:]] ) echo "alpha" ;;&
[[:digit:]] ) echo "digit" ;;& # 0-9
[[:punct:]] ) echo "punct" ;;& # [!-/ :-@ [-` {-~]
[[:space:]] ) echo "space" ;;& # [ \t\v\f]
[[:cntrl:]] ) echo "cntrl" ;;&
[[:graph:]] ) echo "graph" ;;&
[[:print:]] ) echo "print" ;;&
[[:xdigit:]] ) echo "xdigit" ;;&
[[:blank:]] ) echo "blank" ;;&
* ) echo "$1" ;;
esac
return
}## utilisation
echo -n "$(test_car "é")"
lower
alpha
graph
print
éPC : Intel(R) Pentium(R) CPU G4600 @ 3.60GHz + 4GiB RAM DDR4-2400 Ubuntu 20.04 , 18.04 22.04 (test)
Portable1 : Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 20.04 ( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne