我在编写bash脚本的过程中,需要存储类似一个名称对应多个文件名的数据,类似c++的multi_map,bash如何处理类似的要求呢?
关系数组考虑过,但是关系数组一个键值只能对应一个值。
bash shell编程数据存储的问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注【以下回答由 GPT 生成】
答案:
在bash中,可以使用关联数组来实现存储多个文件名的数据。尽管关联数组的一个键只能对应一个值,但我们可以将这个值定义为一个数组。具体步骤如下:
- 声明一个关联数组,用于存储文件名和对应的文件数组。
bash declare -A fileMapping- 遍历文件列表,将文件名与对应的文件添加到关联数组中。如果已经存在该文件名对应的数组,直接将文件名追加到数组中;如果不存在,则创建一个新的数组存储文件名。
bash files=(file1.txt file2.txt file3.txt) for file in ${files[@]}; do if [[ -v fileMapping[$file] ]]; then fileMapping[$file]+=" $file" else fileMapping[$file]="$file" fi done- 查看关联数组中的数据,可以通过循环遍历关联数组输出文件名和文件数组。
bash for key in "${!fileMapping[@]}"; do echo "文件名: $key" echo "对应的文件数组: ${fileMapping[$key]}" done这样,你就可以实现在bash shell编程中存储多个文件名的数据了。
注:以上代码仅供参考,实际情况可能需要根据具体需求进行适当修改。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决评论 打赏 举报无用 1