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//,/} 即可。

 

也就是说··· ···

 

空格:

删除:

 

注意观察最后面的}与前面的/之间是否有空格。

posted @ 2022-05-24 11:15  Zhai_David  阅读(2847)  评论(0编辑  收藏  举报