首页 > 解决方案 > 在bash中将空格分隔的字符串转换为逗号分隔

问题描述

我是 shell 脚本的新手

我正在缩进转换一个字符串,如:

abc def ghi

"abc","def","ghi"

这是我尝试过的:

testvar= "abc def ghi"

a='"';

res="";
coma=","
for i in $testvar
do
vals=(${i//__/ })
 if [ -z "$res" ]; then
    $res= $res$a$vals$a
 else 
 $res=$res$coma$a$vals$a
 fi
done

echo $res

它给出了这个错误:

$bash -f main.sh

main.sh: line 4: abc def ghi: command not found

我在做什么错?有没有更好的方法来做到这一点?

标签: bashshell

解决方案


也许您可以使用sed如下命令:(注意defand中有多个空格ghi

$ echo 'abc def   ghi' | sed -E 's/\s+/\,/g'
abc,def,ghi

推荐阅读