J'ai fait ce qui suit en ligne de commande:
$ text="name with space"
$ echo $text
name with space
J'essaie d'utiliser tr -d ' '
pour supprimer les espaces et avoir un résultat de:
namewithspace
J'ai essayé quelques choses comme:
text=echo $text | tr -d ' '
Pas de chance jusqu'à présent donc j'espère que vous, les gens merveilleux, pouvez aider!
shell
command-line
tr
user3347022
la source
la source
Vous n'avez pas besoin de
echo
commande du tout, utilisez simplement Here String à la place:Par curiosité, j'ai vérifié combien de temps une tâche aussi triviale prend pour différents outils. Voici les résultats triés du plus lent au plus rapide:
Le fonctionnement en shell pur est certainement le plus rapide, ce qui n'est pas surprenant, mais ce qui est vraiment impressionnant, c'est qu'il est plus de 100 fois plus rapide que la commande la plus lente!
la source
Modifiez simplement votre variable de texte comme ci-dessous.
Cependant, si nous avons des personnages de contrôle, cela pourrait casser. Ainsi, selon la suggestion de Kasperd, nous pourrions avoir des guillemets autour. Donc,
sera une meilleure version.
la source
$text
contient des caractères de contrôle, qui seraient interprétés par le shell. Mieux vaut y mettre des guillemets:text="$(echo "$text" | tr -d ' ')"
la source
un cas particulier lorsque vous avez besoin d'une variable qui a un nombre:
sh:
ksh:
la source