赵灵越 2023-11-13 11:54 采纳率: 99.3%
浏览 2
已结题

sh怎么正确合并两个json?


sh合并两个json

去除重复循环的键值对
先读取这json,然后进行比对,
计算合并前后大小

/storage/emulated/0/下载/Document/chat-store_2023-11-12 (2).json
/storage/emulated/0/下载/Document/chat-store_2023-11-12 (3).json
按照我的要求合并
#!/bin/bash

# 计算合并前的文件大小
original_size=$(du -b "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (2).json" "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (3).json" | awk '{s+=$1} END {print s}')

# 合并两个 JSON 文件并计算合并后的文件大小
merged_size=$(jq -s '.[0] * .[1]' "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (2).json" "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (3).json" | jq -s 'length' | awk '{print $1}')

echo "合并前大小: $original_size bytes"
echo "合并后大小: $merged_size bytes"



~ $ # 计算合并前的文件大小
~ $ original_size=$(du -b "/storage/emulated/0/ 下载/Document/chat-store_2023-11-12 (2).json" "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (3).json" | awk '{s+=$1} END {print s}')
~ $
~ $ # 合并两个 JSON 文件并计算合并后的文件大小
~ $ merged_size=$(jq -s '.[0] * .[1]' "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (2).json" "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (3).json" | jq -s 'length' | awk '{print $1}')
~ $
~ $ echo "合并前大小: $original_size bytes"
合并前大小: 3584381 bytes
~ $ echo "合并后大小: $merged_size bytes"
合并后大小: 1 bytes
~ $
~ $

看起来已经成功计算了合并前后两个 JSON 文件的大小。根据输出,合并后的文件大小为 1 字节。这似乎有点不正常,因为合并后的文件应该比原来的文件大才对。

我怀疑问题出在合并的方式上。您可以尝试使用 jq 工具的 add 函数来合并这两个 JSON 文件,而不是使用 * 运算符。请尝试以下命令:

merged_size=$(jq -s '.[0] + .[1]' "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (2).json" "/storage/emulated/0/下载/Document/chat-store_2023-11-12 (3).json" | jq 'length')

这样会使用 + 运算符来合并两个 JSON 文件,然后计算合并后的大小。希望这次能够得到正确的结果。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-13 14:24
    关注

    【相关推荐】




    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月23日
  • 已采纳回答 11月15日
  • 专家修改了标签 11月13日
  • 创建了问题 11月13日

悬赏问题

  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
  • ¥15 svpwm波形异常求解答
  • ¥15 STM32——硬件IIC从机通信代码实现
  • ¥15 关于GRSL投稿的疑问
  • ¥15 微生物组数据分析--微生物代谢物
  • ¥30 求一跃动小子保卫主公Java算法实现
  • ¥15 地图软件开发技术答疑(api, 地点获取,外观样式)
  • ¥20 物理远程控制麦克风使用问题