Scinde une chaîne avec bash avec symbole
Par exemple, j'ai une chaîne de caractères: test1@test2
.
J'ai besoin d'obtenir le test2
partie de cette chaîne. Comment puis-je faire cela avec bash?
- double possible de la Manipulation de Chaîne de Bash . . . Retrait de leader de la section
Vous devez vous connecter pour publier un commentaire.
À l'aide de Paramètre D'Extension:
#
dit Supprimer le plus petit préfixe de l'extension correspondant au modèle.%
caractère Supprimer le plus petit suffixe de l'extension correspondant au modèle. (De sorte que vous pouvez faire"${str%@*}"
pour obtenir le"test1"
partie.)/
caractère Enlever la plus petite et la première sous-chaîne de l'extension correspondant au schéma suivant. Bash a, mais ce n'est pas POSIX.Si vous double caractère de modèle, il correspond à goulûment.
##
signifie Supprimer le plus grand préfixe de l'extension correspondant au modèle.%%
signifie Supprimer le plus grand suffixe de l'extension correspondant au modèle.//
signifie Supprimer toutes les sous-chaînes de l'extension correspondant au modèle.awk -F "@" '{print $2}' <<< "test1@test2"
for substring in "${awk -F '@' '{print $2}'[@]}"
.Une autre façon de Bash:
Noter que cette technique offre également la première partie de la chaîne:
read
. Cela se produit lorsqu'une affectation de variable précède une commande de cette façon.xxx="test1@test2"; sed 's/.*@//' <<< $x
.x
es?