Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/04/2020, à 01:51

antoinerzad

Bash - Séparer une variable en deux variable

Bonjour, j'aimerais séparer une variable user:password en deux variable en bash a peux près comme ceci

variabledebut=user1:pass123

varableuser = user1
variablepass = pass123

Merci infiniment pour l'aide

Hors ligne

#2 Le 08/04/2020, à 02:02

MicP

Re : Bash - Séparer une variable en deux variable

Bonjour

Voir : https://wiki-dev.bash-hackers.org/synta … ng_removal

michel@debT450:~$ variabledebut=user1:pass123
michel@debT450:~$ 
michel@debT450:~$ variableuser=${variabledebut%:*}    # Supprime tout ce qui suit le dernier caractère deux points (le caractère deux points sera aussi supprimé)
michel@debT450:~$ variablepass=${variabledebut##*:}   # Supprime tout ce qui précède le dernier caractère deux points (le caractère deux points sera aussi supprimé)
michel@debT450:~$ 
michel@debT450:~$ echo $variableuser
user1
michel@debT450:~$ echo $variablepass
pass123
michel@debT450:~$ 

=======
Dans ce cas là, où il n'y a que deux champs,
que ce soit le premier ou dernier caractère ":"
ce sera toujours le même, vu qu'il n'y en a qu'un.
Mais s'il y en avait eu plusieurs,
il aurait été possible d'utiliser une de ces deux autres formulaions :

variableuser=${variabledebut%%:*}  # Supprime tout ce qui suit le premier caractère deux points (le caractère deux points sera aussi supprimé)
variablepass=${variabledebut#*:}   # Supprime tout ce qui précède le premier caractère deux points (le caractère deux points sera aussi supprimé)

Dernière modification par MicP (Le 09/04/2020, à 00:40)

Hors ligne

#3 Le 08/04/2020, à 08:45

diesel

Re : Bash - Séparer une variable en deux variable

La solution proposée par MICP est parfaite.

Pour les gens allergiques à la syntaxe de bash, il est possible d'utiliser la commande cut comme ça :

variable="user1:password"
variableuser=$(echo $variable | cut -d: -f1)
variablepassword=$(echo $variable | cut -d: -f2)

On peut aussi faire avec grep, sed ou awk. Enfin, il y a plein de solutions différentes, quoi...

Amicalement.

Jean-Marie

Dernière modification par diesel (Le 08/04/2020, à 08:47)


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#4 Le 08/04/2020, à 10:48

credenhill

Re : Bash - Séparer une variable en deux variable

hello

$ variabledebut=user1:pass123
$ IFS=: read variableuser variablepass <<<"$variabledebut"
$ echo $variableuser $variablepass
user1 pass123

Hors ligne

#5 Le 08/04/2020, à 10:53

diesel

Re : Bash - Séparer une variable en deux variable

credenhill a écrit :

hello

$ variabledebut=user1:pass123
$ IFS=: read variableuser variablepass <<<"$variabledebut"
$ echo $variableuser $variablepass
user1 pass123

Joli !

Amicalement.

Jean-Marie


Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.

Hors ligne

#6 Le 08/04/2020, à 11:00

antoinerzad

Re : Bash - Séparer une variable en deux variable

Merci beaucoup pour l'aide smile

Hors ligne