首页 > 解决方案 > 使用 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 -ntail的组合发送它,我可以看到单个值,但任何尝试超过 2-3 行的尝试都会失败。错误通常是一组 JSON 值,后跟垃圾数据。整个命令通常以

输入流中的无效字符。

要查看 json 值,我使用<long bash command from above> | xargs base64 -D

-- 警告:在 OSX 上使用 bash

标签: bashsedbase64amazon-kinesis

解决方案


这有效(假设您已将 base64 数据复制到文件中):

while IFS= read -r line; do echo $line | base64 -D && printf "\n"; done < <infile>

推荐阅读