0
votes

Comment utiliser le résultat d'une variable à l'intérieur d'une expression de motif dans la même ligne de bash?

Je voudrais exécuter ce qui suit dans une ligne: xxx

qui prend les 15 premiers caractères d'une chaîne seulement et remplace les espaces avec des traits de soulignement. J'ai essayé: xxx

mais il dit mauvaise substitution . Qu'est-ce qui ne va pas?


2 commentaires

var = "$ (écho" chaîne avec des espaces à l'intérieur, nous voulons supprimer. "| CUT -C1-15 | TR" "" _ ")" ?


La vie est trop courte pour s'inquiéter de cela ;-). Pourquoi pas var = $ (écho "chaîne avec des espaces à l'intérieur, nous voulons supprimer." | Couper -c1-15); echo "$ {var // / _}" (notez le ; ). Bonne chance.


3 Réponses :


3
votes

avec GNU SED: xxx

sortie: xxx


0 commentaires

3
votes

Vous ne pouvez pas effectuer de substitution variable sur quelque chose qui n'est pas une variable.

var="String with spaces inside we want to remove."
var=${var:0:15}
echo "${var// /_}"


0 commentaires

1
votes

Votre commande de substitution double variable fonctionnera avec zsh , mais pas bash : xxx


0 commentaires