用bash中的字符替换字符串中的点

时间:2017-10-27 21:22:02

标签: bash

我有一个像1.1.1.1.1这样的字符串,我想用_字符替换所有点。

我写了以下程序:

#!/bin/bash

var="1.1.1.1.1"
new2=${var/./_}
echo $new2

但它只是用字符串中的_替换第一个点,结果是:  1_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