如何删除shell脚本中字符串中所有出现的点?

rup*_*ali 17 linux shell

例如hostname ="test.test.test",那么删除后的结果应该像"testtesttest"

Ign*_*ams 18

$ foo=test.test.test
$ echo "${foo//./}"
testtesttest
Run Code Online (Sandbox Code Playgroud)


cod*_*ict 18

你也可以管道

tr -d '.'
Run Code Online (Sandbox Code Playgroud)

但这样做的最好方法是不使用外部命令并使用内置的shell.


dar*_*ioo 9

一般的方法是将它传递给sed:

sed -e 's/\.//g'
Run Code Online (Sandbox Code Playgroud)

在命令提示符下:

$ echo $hostname                         // you type this
test.test.test                           // this is the result
$ echo $hostname | sed -e 's/\.//g'
testtesttest
Run Code Online (Sandbox Code Playgroud)


dav*_*rey 5

不只是 .但是 - 和_也是

HOSTNAME=test.test.test 
HOSTNAME=${HOSTNAME//[-._]/} # testtesttest
Run Code Online (Sandbox Code Playgroud)