首页 > 解决方案 > 如何在同一行打印一个数组

问题描述

我正在读取一个包含以下配置作为数组的文件:

$ cat ./FILENAME
*.one.dev.arr.name.com
*.one.dev.brr.name.com
*.one.dev.sic.name.com
*.one.dev.sid.name.com
*.one.dev.xyz.name.com
*.one.dev.yza.name.com

数组被读取 IFS='$\n' read -d '' -r -a FILENAME < ./FILENAME

我需要格式为以下格式:

'{*.one.dev.arr.name.com,*.one.dev.brr.name.com,*.one.dev.sic.name.com,*.one.dev.sid.name.com,*.one.dev.xyz.name.com,*.one.dev.yza.name.com}'

我试过使用 printf,棘手的部分是名称开头的通配符(*)。

标签: bashjenkins-pipelinebash-completion

解决方案


只需输出您想要输出的内容 -{并将}行与,

echo "{$(paste -sd, FILENAME)}"

如果你想要一个数组,你可以:

echo "{$(IFS=, ; echo "${array[*]}")}"

推荐阅读