bash - 使用 bash、jq、sed 解析运动数据
问题描述
我希望使用 bash 浏览一些运动数据。使用类似的 cmd:
aws kinesis get-records --shard-iterator <long shard info> | jq '[.|.Records[].Data]' | grep \"ey | sed -e 's/^[ \t]*\"//;s/[ \t]*\",$//'
我可以从流中获取 base64 数据。我遇到的问题是通过base64管道传输,这样我就可以看到实际数据。
如果我使用head -n和tail的组合发送它,我可以看到单个值,但任何尝试超过 2-3 行的尝试都会失败。错误通常是一组 JSON 值,后跟垃圾数据。整个命令通常以
输入流中的无效字符。
要查看 json 值,我使用<long bash command from above> | xargs base64 -D
-- 警告:在 OSX 上使用 bash
解决方案
这有效(假设您已将 base64 数据复制到文件中):
while IFS= read -r line; do echo $line | base64 -D && printf "\n"; done < <infile>
推荐阅读
- json - Flutter 将 Json 数据传输到另一个页面
- node.js - 是否可以使用 node.js 的 readline 库以编程方式模拟按键?
- html - 如何避免来自 css calc 函数的负值?
- eslint - 用于在三元语句的冒号周围强制空格的 Eslint 规则?
- angular - 打字稿类型'字符串| 留言 | (string[] | Message[])[]' 不能分配给类型 'string[] | 信息[]'
- mysql - 即使我是管理员也无法写入 .bash_profile 文件
- scala - 如何创建地图列以计算没有 udaf 的出现次数
- python - 由于某种原因无法从 p 标签获取文本 - Selenium (Python)
- reactjs - 使用 Firebase onSnapshot 在不刷新的情况下使用新添加的事件填充 React-Big-Calendar
- mysql - mysql - 将数组值作为列而不是值进行转义和读取的问题