翻译变量内的数字(IP 地址)(bash)

Translate numbers (IP address) inside a variable (bash)

我的问题是我的 IP 地址像 10.3.1.33 此 IP 地址在变量 ip=10.3.1.33

现在我想用“*”翻译那个IP地址里面的33。 “33”可以改变,所以这个数字必须自动放在变量的某个地方等等...... 我不知道该怎么做。感谢您的任何建议:)

在您非常具体的情况下,您可以使用:

$ ip="10.3.1.33"
$ printf "%s\n" "${ip/33/*}"
10.3.1.*

并替换(删除)最后一段之后的所有内容:

$ ip="10.3.1.33"
$ printf "%s\n" "${ip%.*}.*"
10.3.1.33

后者 POSIX 兼容,而第一个在 bash 中可用(以及其他 shell)

我可以考虑一下:

 ip=1.2.3.4
 ip1=${ip%.*}.*