我在编写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
悬赏问题
- ¥15 求推荐发表需要付费的深度学习遥感场景分类SCI期刊
- ¥15 无法在java控制台录入文字
- ¥15 flutter网页应用用python的http服务器访问速度慢
- ¥15 VESTA绘图原子颜色显示异常
- ¥15 天翼云搭建多ip l2tp
- ¥15 python实现CAD识图
- ¥15 如何实现在renpy中创建并应用不同大小尺寸对话框?
- ¥15 table表格有一列是固定列 滑动到最下面时 固定的那一列有几行没显示出来
- ¥20 单细胞数据注释时报错
- ¥15 vscode编译ros找不到头文件,cmake.list文件出问题,如何解决?(语言-c++|操作系统-linux)