Regex 如何在bash中将文本替换为占位符和变量中的值?
我有两个变量。一种是带有占位符的文本,例如Regex 如何在bash中将文本替换为占位符和变量中的值?,regex,bash,shell,Regex,Bash,Shell,我有两个变量。一种是带有占位符的文本,例如&a或&B。另一个包含应插入文本中的变量&a说它是第一个单词,&b说它是第二个单词。在文本中,它们可能是随机排列的。分隔符是一个空格。我怎么能在bash中这样做 例如: TEXT="Once &B a &a" VAR="time upon" # Result should be "Once upon a time" 您至少需要使用以下两个命令: 剪切(拆分“VAR”变量) sed(替换您的代币) 您至少需要使用以下两个命令: 剪切
&a
或&B
。另一个包含应插入文本中的变量&a
说它是第一个单词,&b
说它是第二个单词。在文本中,它们可能是随机排列的。分隔符是一个空格。我怎么能在bash中这样做
例如:
TEXT="Once &B a &a"
VAR="time upon"
# Result should be "Once upon a time"
您至少需要使用以下两个命令:
- 剪切(拆分“VAR”变量)
- sed(替换您的代币)
- 剪切(拆分“VAR”变量)
- sed(替换您的代币)
- 纯bash-无需外部命令:
VAR="time upon"
TEXT="Once &b a &a"
set -- $VAR
temp=${TEXT//&a/$1}
TEXT=${temp//&b/$2}
echo ==$TEXT==
纯bash-无需外部命令:
VAR="time upon"
TEXT="Once &b a &a"
set -- $VAR
temp=${TEXT//&a/$1}
TEXT=${temp//&b/$2}
echo ==$TEXT==
谢谢,这很有魅力。很抱歉,我没有说最多可能有26个占位符(a-z),有时变量不如占位符多。例如TEXT=“Once&b a&c there&a peace&d&e&f”;VAR=“was on time”谢谢,这很有魅力。很抱歉,我没有说最多可能有26个占位符(a-z),有时变量不如占位符多。例如TEXT=“Once&b a&c there&a peace&d&e&f”;VAR=“was on time”这没有帮助-应该如何使用这些命令?请添加一个示例和说明。暂时被否决。现在你有了好的关键词(sed和cut),你可以在谷歌上复制/粘贴它们,不是吗?在你拥有它们之前,你不能,所以我确实认为它有帮助。所以这不是一个给别人做作业的地方。这没有帮助-人们应该如何使用这些命令?请添加一个示例和说明。暂时被否决。现在你有了好的关键词(sed和cut),你可以在谷歌上复制/粘贴它们,不是吗?在你拥有它们之前,你不能,所以我确实认为它有帮助。所以这里不是给别人做作业的地方。