我有一个像1.1.1.1.1
这样的字符串,我想用_
字符替换所有点。
我写了以下程序:
#!/bin/bash
var="1.1.1.1.1"
new2=${var/./_}
echo $new2
但它只是用字符串中的_
替换第一个点,结果是:
1_1.1.1.1
如何用_
替换所有点?
感谢。
答案 0 :(得分:9)
你非常接近。要替换所有匹配,请使用${var//find/replace}
:
#!/bin/bash
var="1.1.1.1.1"
new2="${var//./_}"
echo "$new2" # prints 1_1_1_1_1
${var...}
形式的bash内置函数称为参数替换。你可以找到关于他们的一切here。