配列から区切り文字でカンマ区切りリストを作成し、最後のカンマを削除する必要がある状況で作業しています。私はbashfor
パイピングを使用してsed
すべてのカンマを削除しますが、最後のカンマは削除しません。単純化された例は次のとおりです。
x=$(for i in a b c; do echo "${i}",; done| sed 's/,$//')
echo $x
a b c
希望の出力:
a, b, c
どんな提案にも感謝します。
ベストアンサー1
一つの選択肢は持続することですbash
arr=(a b c)
x=$(IFS=,;printf "%s" "${arr[*]}")
echo "$x"
a,b,c
交互に
arr=(a b c)
printf -v x "%s," "${arr[@]}"
x=${x%,}
echo "$x"
a,b,c
2番目のオプションでは、区切り文字を個別に設定する,
のではなく(カンマの後にスペースが続く)ように設定できます。,
printf -v x "%s, " "${arr[@]}"
x=${x%, }
echo "$x"
a, b, c