#1 Le 08/04/2020, à 00: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, à 01: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 08/04/2020, à 23:40)
Hors ligne
#3 Le 08/04/2020, à 07: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, à 07: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, à 09: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, à 09:53
- diesel
Re : Bash - Séparer une variable en deux variable
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, à 10:00
- antoinerzad
Re : Bash - Séparer une variable en deux variable
Merci beaucoup pour l'aide
Hors ligne