bash - 如何在同一行打印一个数组
问题描述
我正在读取一个包含以下配置作为数组的文件:
$ 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,棘手的部分是名称开头的通配符(*)。
解决方案
只需输出您想要输出的内容 -{
并将}
行与,
:
echo "{$(paste -sd, FILENAME)}"
如果你想要一个数组,你可以:
echo "{$(IFS=, ; echo "${array[*]}")}"
推荐阅读
- docker - Docker 应用程序如何从 Docker 外部的网络共享路径获取文件列表?
- html - 在引导程序中创建多项选择题并允许 2 个或更多选择
- node.js - 我如何在节点 js sequelize 中编写此查询
- java - Jackson 和 Lombok:当属性是对象时出现 MismatchedInputException
- java - 在 JOOQ 中分页之前获取总行数?
- ios - 在 iOS 中使用 firebase 时动态链接无效
- java - 没有自动装配的 Spring 服务定位器
- .htaccess - 如何将 URL 从查询参数重写为路径段
- jsonata - JSONata 递归映射
- java - 为什么在运行最小的 Spring Boot 应用程序时出现登录屏幕?