2011-05-16 91 views
1

我有两个变量。一种是带有占位符的文本,例如&a&B。另一个包含应该插入到文本中的变量。 &a表示这是第一个词,&b表示这是第二个词。在文中他们可以随机排列。分隔符是一个空格。我怎么能在bash中做到这一点?如何使用bash中的变量值替换带有占位符的文本?

实施例:

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

# Result should be "Once upon a time" 

回答

5

纯粹的打击 - 没有外部命令:

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

感谢这工作像一个魅力。对不起,我错过了说可能有多达26个占位符(a-z),有时并没有像占位符那样多的变量。例如。 TEXT =“Once&b a&c there&a peace&d &e &f"; VAR =”准时“ – Neo 2011-05-17 11:03:39

-1

需要使用至少下列2个命令:

  • 切割(分割您 “VAR” 变量)
  • sed的(取代您的令牌)
+0

这没有帮助 - 应该如何使用这些命令?请添加一个例子和解释。暂时下降。 – 2017-05-09 20:41:08

+0

现在你有了好的关键字(sed和cut),你可以在谷歌中复制/粘贴它们,不是吗?在你拥有它们之前,你不能,所以我认为它有帮助。 SO不是做别人作业的地方。 – Tristan 2017-05-10 09:28:11

相关问题