如何用bash中的变量值替换带占位符的文本?

时间:2011-05-16 12:04:58

标签: regex bash shell

我有两个变量。一个是带有占位符的文本,例如&a&B。另一个包含应该插入文本中的变量。 &a说这是第一个字,&b说这是第二个字。在文本中,它们可以是随机顺序。分隔符是一个空格。我怎么能在bash中这样做?

示例:

TEXT="Once &B a &a"
VAR="time upon"

# Result should be "Once upon a time"

2 个答案:

答案 0 :(得分:5)

Pure bash - 没有外部命令:

VAR="time upon"
TEXT="Once &b a &a"
set -- $VAR
temp=${TEXT//&a/$1}
TEXT=${temp//&b/$2}
echo ==$TEXT==

答案 1 :(得分:-1)

您至少需要使用以下两个命令:

  • cut(分割你的“VAR”变量)
  • sed(替换您的令牌)