supprimer l'espace de bash variable
En supposant une variable contient des espaces, retours à la ligne, et les onglets suivis par du texte, pourquoi est-ce que:
${var#"${var%%[![:space:]]*}"} # strip var of everything
# but whitespace
# then remove what's left
# (i.e. the whitespace) from var
supprimer l'espace blanc et laisser le texte, mais c':
${var##[:space:]*} # strip all whitespace from var
ne l'est pas?
OriginalL'auteur MCS | 2008-11-27
Vous devez vous connecter pour publier un commentaire.
Si j'ai mis
var=" This is a test "
, à la fois de vos suggestions ne fonctionnent pas;juste le premier truc est supprimé.
Pourquoi ne pas utiliser le remplacement de la fonction qui supprime toutes les occurrences d'espaces et pas seulement la première:
OriginalL'auteur flolo
[:space:] est une classe de caractères. C'est uniquement valable s'il est imbriqué dans un autre ensemble de [ ].
Ceci est documenté dans la regex(7) ("l'homme 7 regex" pour le lire). Plus moderne regex implémentations d'inclure le support pour la POSIX nommé les classes de caractères, de sorte que vous pouvez lire à leur sujet en perl la page de manuel perlre, par exemple, en tant que bien.
OriginalL'auteur Barry Kelly
flolo de réponse est indiqué dans le "Paramètre de Substitution de" l'article de la page de manuel de bash. Une autre source de documentation est le Paramètre De Substitution section de la Advanced Bash Scripting Guide. L'ABS guide comprend des documents de base avec une excellente exemple de code.
OriginalL'auteur converter42
Et $(echo $var)
OriginalL'auteur Bryant Hansen