如何在Bash变量中替换通配符?

时间:2018-03-08 09:33:42

标签: bash

我有以下变量:

$var="123#10.20.30.40.50"

我需要在变量中替换点并跳过123#子串。我希望结果为:

echo $var
10 20 30 40 50

2 个答案:

答案 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