【发布时间】:2021-02-15 07:22:06
【问题描述】:
我有一个名为 concat 的变量(两个变量之间粘贴命令的结果)。 concat 是一个包含字符串的多行变量:
strawberrie red
banana yellow
apple green
排版结果 -p concat :
declare --concat ="strawberrie red
banana yellow
apple green"
我需要在这个变量的每一行的开头附加另一个名为 type 的变量:
fruit
回显变量数组后我需要得到的结果(编辑:它不是数组,但我这样称呼它)
fruit strawberrie red
fruit banana yellow
fruit apple green
我尝试使用 sed,但没有成功:
echo "$concat" | sed "/^/$type"
返回的错误是找不到 sed 命令(即使 sed 工作)
array=$(sed '/^/$type')
只是不工作
我在互联网上找到了许多其他解决方案,但没有一个对我有用(我不知道如何正确使用 sed,所以我想我可能写了不适应的选项)。
我需要使用哪个命令来做到这一点(你能解释一下你在其中使用的选项,这样我就不会在没有学习的情况下粘贴它)?
编辑:这是我用来将变量fruit附加到变量concat并保存在变量数组中的代码(也是一个字符串):
array=$(sed "s/^/$type /g" <<< "$concat")
【问题讨论】:
-
根据您的描述,(对我来说)
${concat}是具有多行值的变量还是多条目数组尚不清楚;请使用typeset -p concat的输出更新问题 -
你的 sed 没问题,你只是忘记了命令
s:echo "$concat" | sed "s/^/$type /"应该可以工作。 -
请不要通过破坏您的帖子为他人增加工作量。通过在 Stack Exchange 网络上发帖,您已在 CC BY-SA 4.0 license 下授予 Stack Exchange 分发该内容的不可撤销的权利(即无论您未来的选择如何)。根据 Stack Exchange 政策,帖子的非破坏版本是分发的版本。因此,任何破坏行为都将被撤销。如果您想了解更多关于删除帖子的信息,请参阅:How does deleting work?