我有以下变量:
$var="123#10.20.30.40.50"
我需要在变量中替换点并跳过123#
子串。我希望结果为:
echo $var
10 20 30 40 50
答案 0 :(得分:2)
# Must be 'var', not '$var' for assignment
var="123#10.20.30.40"
echo "${var}"
# Expand var, remove matching prefix pattern '*\#' (up to first '#')
var=${var#*\#}
echo "${var}"
# Expand var, pattern substitution '\.' with ' ' for ALL matches
var=${var//\./ }
echo "${var}"
输出:
123#10.20.30.40
10.20.30.40
10 20 30 40
关于此的文档以及man bash
,章节"参数扩展"。
答案 1 :(得分:0)
另一种解决方案:
$ echo "$var" | cut -d '#' -f2 | sed 's,\., ,g'
10 20 30 40 50