gpt4 book ai didi

shell - ${arr[@]} 在 sed 命令中

转载 作者:行者123 更新时间:2023-12-01 03:28:57 25 4
gpt4 key购买 nike

#!/bin/sh

arr=(
a
b
c
)
sed "s/abc/${arr[@]}/" file

sh -x this_script.sh 显示错误结果:
+ arr=(a b c)
+ sed s/abc/a b c/ file
sed: -e expression #1, char 5: unterminated `s' command

它应该是:
+ sed 's/abc/a b c/' file

这个脚本中已经有双引号了,为什么需要声明一个变量来使它工作:
 x=${arr[@]}
sed "s/abc/$x/" file

最佳答案

您可以使用 ${arr[*]}而不是 ${arr[@]}将其视为单个字符串:

sed "s/abc/${arr[*]}/" <<< "abc"

a b c

关于shell - ${arr[@]} 在 sed 命令中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39387240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com