gpt4 book ai didi

linux - 如何读取逗号分隔的变量并将它们附加到 unix 中的字符串缓冲区中

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:41 27 4
gpt4 key购买 nike

我正在寻找选项来读取具有逗号分隔字段的变量(例如:a,b,c,d,e,f)并从中生成另一个变量(例如: a,'a',b,'b',c,'c',d,'d',e,'e',f,'f')。我尝试过使用“FOR”循环方法,但它在末尾添加了逗号。例如:

Var1=a,b,c,d,e,f

预期输出:

Var2=a,'a',b,'b',c,'c',d,'d',e,'e',f,'f'

for i in $(echo $Var1 | sed "s/,/ /g")
do
Var2="$i"",'""$i""',"
fi
done

我得到 Var2=a,'a',b,'b',c,'c',d,'d',e,'e',f,'f',以逗号结尾有没有什么好的方法可以在不增加复杂性的情况下完成它?

谢谢数据管理平台

最佳答案

这是在 sed 中执行此操作的方法。

$ var1="a,b,c,d,e,f,"
$ var2=$(sed -e "s/[a-z]/&,\'&\'/g" -e 's/,$//g' <<<"$var1")
$ echo $var2
a,'a',b,'b',c,'c',d,'d',e,'e',f,'f'

sed 中的第一个 -e 重复单个字符,然后下一个 -e 删除结尾的逗号 ,.

如果 var1 在每个逗号 , 之间有多个字符,上面的代码将工作。对于该用途,-Eregex 选项用于 sed

$ var1='abc,192,hk3,def,HoZ,'
$ var2=$(sed -E -e "s/[a-zA-Z0-9]+/&,\'&\'/g" -e 's/,$//g' <<<"$var1")
$ echo "$var2"
abc,'abc',192,'192',hk3,'hk3',def,'def',HoZ,'HoZ'

关于linux - 如何读取逗号分隔的变量并将它们附加到 unix 中的字符串缓冲区中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52284711/

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