shell删除变量中的字符(字符串替换)
我们这里有一个变量
IPList="172.20.59.238:34994,172.20.59.21:34994,172.20.59.28:34994"
如果我们要将其中的逗号“,”替换为空格,该如何来操作··· ···
我们这里通过变量直接修改的方式,不引入其他的命令
实现方法如下:
语法:
${变量//旧字符/新字符}
显然,这里是要将逗号替换为空格,我们做如下的测试:
IPList="172.20.59.238:34994,172.20.59.21:34994,172.20.59.28:34994" IPNew1=${IPList//,/ } echo $IPNew1
看下实验的结果:
[root@nctest-snap-test-02 practises]# IPList="172.20.59.238:34994,172.20.59.21:34994,172.20.59.28:34994" [root@nctest-snap-test-02 practises]# IPNew1=${IPList//,/ } [root@nctest-snap-test-02 practises]# [root@nctest-snap-test-02 practises]# echo $IPNew1 172.20.59.238:34994 172.20.59.21:34994 172.20.59.28:34994 [root@nctest-snap-test-02 practises]#
通过上面的输出,我们看到,已经成功的将其中的逗号,替换为空格
那回归到要删除的这个需求怎么做呢?很简单··· ···
看下面的例子:
IPList="172.20.59.238:34994,172.20.59.21:34994,172.20.59.28:34994" IPNew1=${IPList//,/} echo $IPNew1
执行的结果:
[root@nctest-snap-test-02 practises]# IPList="172.20.59.238:34994,172.20.59.21:34994,172.20.59.28:34994" [root@nctest-snap-test-02 practises]# IPNew1=${IPList//,/} [root@nctest-snap-test-02 practises]# [root@nctest-snap-test-02 practises]# echo $IPNew1 172.20.59.238:34994172.20.59.21:34994172.20.59.28:34994 [root@nctest-snap-test-02 practises]#
就是将${IPList//,/ }中空格给删除掉,变为${IPList//,/} 即可。
也就是说··· ···
空格:
删除:
注意观察最后面的}与前面的/之间是否有空格。