Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在bash中向变量的每一行追加另一个变量?_Bash_Variables_Sed_Append - Fatal编程技术网

如何在bash中向变量的每一行追加另一个变量?

如何在bash中向变量的每一行追加另一个变量?,bash,variables,sed,append,Bash,Variables,Sed,Append,我有一个名为concat的变量(两个变量之间的粘贴命令的结果)。Concat是一个包含字符串的多行变量: strawberrie red banana yellow apple green 排版结果-p concat: declare --concat ="strawberrie red banana yellow apple green" 我需要在该变量每行的开头追加另一个名为type的变量: fruit 对变量数组进行回显后需要得到的结果(编辑:

我有一个名为concat的变量(两个变量之间的粘贴命令的结果)。Concat是一个包含字符串的多行变量:

strawberrie red
banana yellow
apple green
排版结果-p concat:

declare --concat ="strawberrie    red
banana    yellow
apple     green"
我需要在该变量每行的开头追加另一个名为type的变量:

fruit
对变量数组进行回显后需要得到的结果(编辑:它不是数组,但我这样调用它)

我尝试了sed,但没有成功:

回声“$concat”| sed”/^/$type”

未找到sed命令时返回错误(即使sed正常工作)

数组=$(sed'/^/$type')

只是不起作用

我在互联网上找到了许多其他的解决方案,但没有一个对我有效(我不知道如何正确使用sed,所以我想我可能写了一些未修改的选项)

我需要使用哪个命令来实现这一点(你能解释一下你在其中使用的选项吗,这样我就不会在没有学习的情况下粘贴它)

编辑:这是我用来将变量fruit附加到变量concat并保存在变量数组中的代码(也是一个字符串):

array=$(sed“s/^/$type/g”Awk是一个选项:

awk -v var="fruit" '{ print var" "$0 }' <<< "$varble"
awk-v var=“fruit”{print var”“$0}'假设:

  • concat
    是一个包含多行数据集的变量
  • OP希望在
    concat
    的每一行前面加上
    “${type}”
    ,然后将每一行作为一个单独的条目存储在一个名为
    array
我们的数据:

$ concat="strawberrie red
banana yellow
apple green"
在每行前面加上
type=fruit
+(空格):


根据您的描述,(对我来说)不清楚
${concat}
是一个多行值变量还是一个多条目数组;请使用
排版-p concat
的输出更新问题,您的sed是正常的,您只是忘记了comand
s
echo“$concat”| sed“s/^/$type/”
应该有效。请不要通过破坏您的帖子来为其他人做更多的工作。通过在Stack Exchange网络上发布,您已授予Stack Exchange在下的不可撤销的权利来分发该内容(即,无论您未来的选择如何)。根据堆栈交换策略,发布的是未被破坏的帖子版本。因此,任何被破坏的帖子都将被还原。如果您想了解有关删除帖子的更多信息,请参阅:谢谢,它成功了!For sed:您为什么使用{}在变量之间?s/do在^之前做什么?和/g做什么?re:大括号-请参阅和;re:
sed s/g
-请参阅
awk -v var="fruit" '{ print var" "$0 }' <<< "$varble"
$ concat="strawberrie red
banana yellow
apple green"
$ type=fruit
$ sed "s/^/${type} /g" <<< "${concat}"
fruit strawberrie red
fruit banana yellow
fruit apple green
$ IFS=$'\n' read -d '' -r -a array < <(sed "s/^/${type} /g" <<< "${concat}")
$ typeset -p array
declare -a array=([0]="fruit strawberrie red" [1]="fruit banana yellow" [2]="fruit apple green")
$ for i in "${!array[@]}"
do
    echo "${i} - ${array[${i}]}"
done

0 - fruit strawberrie red
1 - fruit banana yellow
2 - fruit apple green