Question Comment supprimer toutes les occurrences de point dans une chaîne dans un script shell?


Par exemple, hostname = "test.test.test", après avoir supprimé le résultat, il devrait ressembler à "testtesttest"


9
2017-12-02 06:43


origine


Réponses:


Vous pouvez également entrer dans

tr -d '.'

Mais le meilleur moyen de le faire est de ne pas utiliser une commande externe et d'utiliser le shell intégré.


14
2017-12-02 06:47



$ foo=test.test.test
$ echo "${foo//./}"
testtesttest

13
2017-12-02 06:44



Une manière générale serait de la diriger vers sed:

sed -e 's/\.//g'

À l'invite de commande:

$ echo $hostname                         // you type this
test.test.test                           // this is the result
$ echo $hostname | sed -e 's/\.//g'
testtesttest

7
2017-12-02 06:46



Pas seulement . mais - et _ aussi

HOSTNAME=test.test.test 
HOSTNAME=${HOSTNAME//[-._]/} # testtesttest

5
2018-06-08 01:37