Как удалить все вхождения точки в строке в сценарии оболочки? - PullRequest
14 голосов
/ 02 декабря 2010

например, hostname = "test.test.test", тогда после удаления результат должен выглядеть как "testtesttest"

Ответы [ 4 ]

17 голосов
/ 02 декабря 2010
$ foo=test.test.test
$ echo "${foo//./}"
testtesttest
16 голосов
/ 02 декабря 2010

Вы также можете передать в

tr -d '.'

Но лучший способ сделать это - не использовать внешнюю команду и использовать встроенную оболочку.

9 голосов
/ 02 декабря 2010

Обычным способом было бы передать его в sed:

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

В командной строке:

$ echo $hostname                         // you type this
test.test.test                           // this is the result
$ echo $hostname | sed -e 's/\.//g'
testtesttest
5 голосов
/ 08 июня 2015

Не только.но - и _ также

HOSTNAME=test.test.test 
HOSTNAME=${HOSTNAME//[-._]/} # testtesttest
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...