logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 10-11-2018 02:05:55

BarbeRousseLibre
Membre
Distrib. : Debian Buster (10, testing)
Noyau : Linux 4.19.0-2-amd64
(G)UI : openbox
Inscription : 11-09-2018

[RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

Bonjour,

Je galère sur un bout de code BASH où j'essai d'obtenir depuis l'input de l'utilisateur du script un nom pouvant contenir les caractères suivants: a-z, 0-9, _

Dans ces schémas là uniquement:
a-z
a-z_a-z
a-z_0-9
a-z0-9
a-z0-9a-z
0-9a-z
0-9_a-z
0-9a-z0-9


Voici le bout de code qui marche presque:

# Check username's character pattern
read user
ok=0
while [ $ok = 0 ]
do
  if [[ "$user" =~ ^[a-z_0-9]+$ ]]; then
    echo -e "\e[1;32mPattern Matching: OK [a-z_0-9]\e[0m\n"
    ok=1
  else
    echo -e "\e[1;31mPattern Matching: K-O [a-z_0-9]\e[0m\n"
    exit
  fi
done
 



Il n'y a que cette paterne, ^[a-z_0-9]+$, qui est proche de ce que je veux dans tout ce que j'ai essayé. Ce qui ne marche pas ici c'est que, de toute façon, l'ordre n'a aucune importance. Or, c'est peut-être bête, mais je tiens à restreindre l'usage de l'underscore pour le milieu du nom uniquement, jamais le début ou la fin de chaîne (rappel: a-z_a-z, a-z_0-9, 0-9_a-z). Question de lisibilité.

Une idée ?

Dernière modification par BarbeRousseLibre (10-11-2018 16:53:41)

Hors ligne

#2 10-11-2018 02:34:23

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

Pas sûr de comprendre ce que tu veux, mais si ce n'est que l'underscore alors suffit de faire ça : [a-z0-9]+_[a-z0-9]+

Le script lui-même... Est structuré un peu bizarrement, y a moyen de faire plus court. Tu devrais tester la chaîne dans le while (pas besoin de if dans le while, while est déjà un conditionnel, autant l'utiliser !) et tu n'a pas besoin de variable "ok" non plus, ni de faire un exit.

J'aurais fait comme ça

demander machaîne
tant que [ machaine correspond pas à mon expression ]
  dire "céPAbon"
  demander machaîne
fintantque
dire "cébon" !

Dernière modification par otyugh (10-11-2018 02:49:12)


virtue_signaling.pngpalestine.png
~1821942.svg

Hors ligne

#3 10-11-2018 08:01:34

MicP
Membre
Inscription : 29-02-2016

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

Bonjour

Alors, je vais essayer.

Ce que j'ai cru comprendre :

- Commence par un caractère alphanumérique
- Il peut y avoir un caractère underscore séparant la ou les lettres alphanumériques mais ni en premier et ni en dernier caractère
- Termine par un caractère alphanumérique

#!/bin/bash

maRegex='^[[:alnum:]]+([_]{,1}[[:alnum:]])*$'

while read; do
  if [[ $REPLY =~ $maRegex ]]; then {
      echo -e "\e[1;32mPattern Matching: OK $maRegex\e[0m\n"
      break
    }
    else
      echo -e "\e[1;31mPattern Matching: K-O $maRegex\e[0m\n"
  fi
done
 

Dernière modification par MicP (10-11-2018 10:21:57)

Hors ligne

#4 10-11-2018 10:29:43

empanada
Membre
Distrib. : Debian 11 (Bullseye)
Noyau : 5.10.0-13-amd64
(G)UI : LXDE
Inscription : 19-09-2018

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

Cette expression inclus toutes les combinaisons de ton premier message:
a-z
a-z_a-z
a-z_0-9
a-z0-9
a-z0-9a-z
0-9a-z
0-9_a-z
0-9a-z0-9

maRegex='^[[:alnum:]]+_?[[:alnum:]]+$'


Salut

Edité: changé le * avant le $ par +. Comme ça on exige que l'expression finisse en [:alnum:]

Dernière modification par empanada (10-11-2018 11:46:34)


"blues are the roots and the other musics are the fruits" . Willie Dixon

Hors ligne

#5 10-11-2018 11:00:06

MicP
Membre
Inscription : 29-02-2016

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

J'avais présumé (peut-être à tord) que le nom entré pouvait contenir
plusieurs suites de caractères alphanumériques
qui seraient séparées par un seul caractère underscore
comme par exemple dans :

petit_papa_noël

Dernière modification par MicP (10-11-2018 11:08:01)

Hors ligne

#6 10-11-2018 11:37:10

empanada
Membre
Distrib. : Debian 11 (Bullseye)
Noyau : 5.10.0-13-amd64
(G)UI : LXDE
Inscription : 19-09-2018

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

maRegex='^[[:alnum:]]+(_?[[:alnum:]]+)*$'

Dernière modification par empanada (10-11-2018 11:46:21)


"blues are the roots and the other musics are the fruits" . Willie Dixon

Hors ligne

#7 10-11-2018 14:35:44

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

A mon tour : smile

#!/bin/bash

maRegex='^([[:alnum:]]+|[[:alnum:]]+_[[:alnum:]]+)$'

read

while ! [[ $REPLY =~ $maRegex ]];
do
      echo -e "\e[1;31mPattern Matching: KO\e[0m\n"
      read
done

echo -e "\e[1;32mPattern Matching: OK\e[0m\n"

exit 0

Dernière modification par Beta-Pictoris (10-11-2018 14:45:41)

Hors ligne

#8 10-11-2018 15:02:27

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

empanada a écrit :

maRegex='^[[:alnum:]]+(_?[[:alnum:]]+)*$'


Ta regexp accepte des chaines avec des underscores à la fin. tongue

Cela dit, il faudrait que BarbeRousseLibre donnent des exemples précis pour comprendre ce qu'il veut exactement.

Dernière modification par Beta-Pictoris (10-11-2018 15:04:45)

Hors ligne

#9 10-11-2018 16:51:55

BarbeRousseLibre
Membre
Distrib. : Debian Buster (10, testing)
Noyau : Linux 4.19.0-2-amd64
(G)UI : openbox
Inscription : 11-09-2018

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

Salut à toutes et à tous,

Merci pour vos réponses, j'ai un peu fouiné à partir de ce que vous m'avez apporté plus des recherches supplémentaires sur internet pour obtenir non seulement un résultat satisfaisant mais qui test automatiquement un jeu de valeur (bonne et mauvaises) dans différentes situations d'échecs notamment que je souhaite éviter (par exemple, je veux explicitement qu'une entrée ne commence ni ne finisse par un underscore, c'est personnel et totalement arbitraire).

Petite explications avant de continuer, sinon c'est juste en dessous: ce script dont vous n'avez qu'un bout a pour but de créer un utilisateur virtual pour vsftpd selon mes règles (longueurs et correspondances de patern grace aux expressions régulières), avec un mot de passe (la prochaine étape) hashé et copié dans un fichier avec le nom d'utilisateur, la création de la racine de l'utilisateur et l'application des bons droits etc et surtout le respect de ma configuration vsftpd.

Ci-dessous le code qui test automatiquement les entrées possibles, ce qui ne sera pas en 'prod':

echo -e "\e[1;93mNew FTP user account \e[0m\e[93m(range length for username is 4 to 16 characters):\e[0m"
echo -e "\e[93mOnly [\e[32ma\e[93m-\e[32mz\e[93m], [\e[32m0\e[93m-\e[32m9\e[93m] and \e[32munderscore \e[93m(\"\e[32m_\e[93m\") characters are allowed.\e[0m\n"

echo -e "\e[1;93mAllowed scheme for username are:\e[0m"
echo -e "\e[32ma\e[93m-\e[32mz\e[93m, \e[32ma\e[93m-\e[32mz_a\e[93m-\e[32mz\e[93m, \e[32ma\e[93m-\e[32mz_0\e[93m-\e[32m9\e[93m, \e[32ma\e[93m-\e[32mz0\e[93m-\e[32m9\e[93m, \e[32ma\e[93m-\e[32mz0\e[93m-\e[32m9a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9_a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9a\e[93m-\e[32mz0\e[93m-\e[32m9\e[0m\n"

echo -e ">>>\e[93m New FTP user account name:\e[0m"

### TESTING LOOP ###
fake_ftp_username_input=("abcd" "ab_cd" "ab_12" "ab12" "ab12cd" "" "12ab" "12_ab" "12ab34" "ab" "abc_" "_abc" "123_" "_123" "ab12_" "_ab12" "____" "123")
for (( i=0; $i<${#fake_ftp_username_input[@]}; i++));
do 
  ftp_username=${fake_ftp_username_input[$i]}

  # Check if user input length is allowed
  ok=0
  while [[ $ok = 0 ]]
  do
    if [[ ${#ftp_username} -lt 4 || ${#ftp_username} -gt 16 ]]; then
      echo -e "\e[31mFTP username length for '$ftp_username' should be between 4 and 16 characters. Exiting!\e[0m"
      ok=1
    else
      echo -e "\e[1;32mLength for FTP username '$ftp_username' is OK.\e[0m\n"
      ok=1
      next_test=1
    fi
  done

  if [[ $next_test = 1 ]]; then
    # Check if user input for username is allowed in pattern matching
    regex='^[[:alnum:]]+(_?[[:alnum:]]+)*$'
    if [[ "$ftp_username" =~ $regex ]]; then
      echo -e "\e[32mFTP username '\e[93m$ftp_username\e[32m' is matching the following: $regex\e[0m\n"
      echo -e "\n\n\n"
    else
      echo -e "\e[31mFTP username '\e[93m$ftp_username\e[31m' is not matching the following: $regex\e[0m\n"
      echo -e "\e[93mAllowed scheme for username are:\e[0m"
      echo -e "\e[32ma\e[93m-\e[32mz\e[93m, \e[32ma\e[93m-\e[32mz_a\e[93m-\e[32mz\e[93m, \e[32ma\e[93m-\e[32mz_0\e[93m-\e[32m9\e[93m, \e[32ma\e[93m-\e[32mz0\e[93m-\e[32m9\e[93m, \e[32ma\e[93m-\e[32mz0\e[93m-\e[32m9a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9_a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9a\e[93m-\e[32mz0\e[93m-\e[32m9\e[0m\n"
      echo -e "\n\n\n"
    fi
  fi
done
### END OF TESTING LOOP ###





Ci-dessous cela donne donc systématiquement (et sans les couleurs, je vous invite à tester c'est safe car ça ne fait que des sorties sur votre terminal, point):

New FTP user account (range length for username is 4 to 16 characters):
Only [a-z], [0-9] and underscore ("_") characters are allowed.

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9

>>> New FTP user account name:
Length for FTP username 'abcd' is OK.

FTP username 'abcd' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





Length for FTP username 'ab_cd' is OK.

FTP username 'ab_cd' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





Length for FTP username 'ab_12' is OK.

FTP username 'ab_12' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





Length for FTP username 'ab12' is OK.

FTP username 'ab12' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





Length for FTP username 'ab12cd' is OK.

FTP username 'ab12cd' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





FTP username length for '' should be between 4 and 16 characters. Exiting!
FTP username '' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9





Length for FTP username '12ab' is OK.

FTP username '12ab' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





Length for FTP username '12_ab' is OK.

FTP username '12_ab' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





Length for FTP username '12ab34' is OK.

FTP username '12ab34' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





FTP username length for 'ab' should be between 4 and 16 characters. Exiting!
FTP username 'ab' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$





Length for FTP username 'abc_' is OK.

FTP username 'abc_' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9





Length for FTP username '_abc' is OK.

FTP username '_abc' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9





Length for FTP username '123_' is OK.

FTP username '123_' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9





Length for FTP username '_123' is OK.

FTP username '_123' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9





Length for FTP username 'ab12_' is OK.

FTP username 'ab12_' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9





Length for FTP username '_ab12' is OK.

FTP username '_ab12' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9





Length for FTP username '____' is OK.

FTP username '____' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9





FTP username length for '123' should be between 4 and 16 characters. Exiting!
FTP username '123' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$
 



Maintenant le bout de code qui sera réellement utilisé pour mon script, sans test automatique donc, je vous invite aussi à tester car la seule différence c'est qu'il est à l'utilisateur de taper le nom:

Le code:

echo -e ">>>\e[93m New FTP user account name:\e[0m"

read ftp_username

# Check if user input length is allowed
ok=0
while [[ $ok = 0 ]]
do
  if [[ ${#ftp_username} -lt 4 || ${#ftp_username} -gt 16 ]]; then
    echo -e "\e[31mFTP username length for '$ftp_username' should be between 4 and 16 characters. Exiting!\e[0m"
    ok=1
  else
    echo -e "\e[1;32mLength for FTP username '$ftp_username' is OK.\e[0m\n"
    ok=1
  fi
done

# Check if user input for username is allowed in pattern matching
regex='^[[:alnum:]]+(_?[[:alnum:]]+)*$'
if [[ "$ftp_username" =~ $regex ]]; then
  echo -e "\e[32mFTP username '\e[93m$ftp_username\e[32m' is matching the following: $regex\e[0m\n"
else
  echo -e "\e[31mFTP username '\e[93m$ftp_username\e[31m' is not matching the following: $regex\e[0m\n"
  echo -e "\e[93mAllowed scheme for username are:\e[0m"
  echo -e "\e[32ma\e[93m-\e[32mz\e[93m, \e[32ma\e[93m-\e[32mz_a\e[93m-\e[32mz\e[93m, \e[32ma\e[93m-\e[32mz_0\e[93m-\e[32m9\e[93m, \e[32ma\e[93m-\e[32mz0\e[93m-\e[32m9\e[93m, \e[32ma\e[93m-\e[32mz0\e[93m-\e[32m9a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9_a\e[93m-\e[32mz\e[93m, \e[32m0\e[93m-\e[32m9a\e[93m-\e[32mz0\e[93m-\e[32m9\e[0m\n"
fi
 



La sortie:

$ bash add_virtual_ftp_user.sh
New FTP user account (range length for username is 4 to 16 characters):
Only [a-z], [0-9] and underscore ("_") characters are allowed.

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9

>>> New FTP user account name:
abcd
Length for FTP username 'abcd' is OK.

FTP username 'abcd' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

$ bash add_virtual_ftp_user.sh
New FTP user account (range length for username is 4 to 16 characters):
Only [a-z], [0-9] and underscore ("_") characters are allowed.

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9

>>> New FTP user account name:
abc
FTP username length for 'abc' should be between 4 and 16 characters. Exiting!
FTP username 'abc' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$


$ bash add_virtual_ftp_user.sh
New FTP user account (range length for username is 4 to 16 characters):
Only [a-z], [0-9] and underscore ("_") characters are allowed.

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9

>>> New FTP user account name:
abc_
Length for FTP username 'abc_' is OK.

FTP username 'abc_' is not matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9


$ bash add_virtual_ftp_user.sh
New FTP user account (range length for username is 4 to 16 characters):
Only [a-z], [0-9] and underscore ("_") characters are allowed.

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9

>>> New FTP user account name:
12ab_4
Length for FTP username '12ab_4' is OK.

FTP username '12ab_4' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$


$ bash add_virtual_ftp_user.sh
New FTP user account (range length for username is 4 to 16 characters):
Only [a-z], [0-9] and underscore ("_") characters are allowed.

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9

>>> New FTP user account name:
abccccccccccccccccccccccccccccccccccccccc
FTP username length for 'abccccccccccccccccccccccccccccccccccccccc' should be between 4 and 16 characters. Exiting!
FTP username 'abccccccccccccccccccccccccccccccccccccccc' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$


$ bash add_virtual_ftp_user.sh
New FTP user account (range length for username is 4 to 16 characters):
Only [a-z], [0-9] and underscore ("_") characters are allowed.

Allowed scheme for username are:
a-z, a-z_a-z, a-z_0-9, a-z0-9, a-z0-9a-z, 0-9a-z, 0-9_a-z, 0-9a-z0-9

>>> New FTP user account name:
ab
FTP username length for 'ab' should be between 4 and 16 characters. Exiting!
FTP username 'ab' is matching the following: ^[[:alnum:]]+(_?[[:alnum:]]+)*$
 



Je sais que ce code est basique et qu'il est largement améliorable, mais en l'état ce n'est pas le but. J'ai déjà 3 scripts pour:

- Ajouter un utilisateur
- Supprimer un utilisateur
- Modifier le mot de passe d'un utilisateur

Mais étant le seul à m'en servir, me faisant un peu confiance à moi-même, je suivait mes propres règles mais désormais j'aimerai juste améliorer ce système en forçant certains paramètres. L'amélioration viendra en temps et en heure.

Encore merci à toutes et à tous smile.

Dernière modification par BarbeRousseLibre (10-11-2018 17:01:50)

Hors ligne

#10 10-11-2018 18:08:06

empanada
Membre
Distrib. : Debian 11 (Bullseye)
Noyau : 5.10.0-13-amd64
(G)UI : LXDE
Inscription : 19-09-2018

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

Beta-Pictoris a écrit :

empanada a écrit :

maRegex='^[[:alnum:]]+(_?[[:alnum:]]+)*$'


Ta regexp accepte des chaines avec des underscores à la fin. tongue


Je ne crois pas puisque le '+' aprés '[[:alnum:]]' oblige à finir avec, au moins, une lettre ou un numéro .

Dernière modification par empanada (10-11-2018 18:08:58)


"blues are the roots and the other musics are the fruits" . Willie Dixon

Hors ligne

#11 10-11-2018 18:25:57

empanada
Membre
Distrib. : Debian 11 (Bullseye)
Noyau : 5.10.0-13-amd64
(G)UI : LXDE
Inscription : 19-09-2018

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

Beta-Pictoris a écrit :

A mon tour : smile


maRegex='^([[:alnum:]]+|[[:alnum:]]+_[[:alnum:]]+)$'
 


Par contre ça ne permet pas qu'un '_' au maximum. Donc le

petit_papa_noël

proposée par BarbeRousseLibre ne passe pas roll


"blues are the roots and the other musics are the fruits" . Willie Dixon

Hors ligne

#12 11-11-2018 12:26:51

Beta-Pictoris
Membre
Lieu : Angers
Distrib. : Buster
Inscription : 11-08-2015

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

empanada a écrit :

Je ne crois pas puisque le '+' aprés '[[:alnum:]]' oblige à finir avec, au moins, une lettre ou un numéro .


Oui, tu as raison. Dans ce cas, le point d'interrogation n'est plus utile je pense.

Dernière modification par Beta-Pictoris (11-11-2018 12:28:36)

Hors ligne

#13 11-11-2018 12:37:16

empanada
Membre
Distrib. : Debian 11 (Bullseye)
Noyau : 5.10.0-13-amd64
(G)UI : LXDE
Inscription : 19-09-2018

Re : [RÉSOLU] [BASH Script] Emplacement d'un caractère dans une paterne

Beta-Pictoris a écrit :

empanada a écrit :

Je ne crois pas puisque le '+' aprés '[[:alnum:]]' oblige à finir avec, au moins, une lettre ou un numéro .


Oui, tu as raison. Dans ce cas, le point d'interrogation n'est plus utile je pense.



Oui, pour inclure les expressions sans '_'. Le '_' c'est facultatif...mais s'il apparait ne peut pas être au début ni à la fin.


"blues are the roots and the other musics are the fruits" . Willie Dixon

Hors ligne

Pied de page des forums