2011-05-16 65 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

相關問題