【问题标题】:Parsing kinesis data using bash, jq, sed使用 bash、jq、sed 解析运动数据
【发布时间】:2019-10-01 19:54:47
【问题描述】:

我希望使用 bash 浏览一些 kinesis 数据。使用类似 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 值,我使用 | xargs base64 -D

-- 警告:在 OSX 上使用 bash

【问题讨论】:

    标签: bash sed base64 amazon-kinesis


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      我开发了Kines - 适用于 Amazon Kinesis Data Stream 的友好 CLI。这对于您的调试目的很有用。

      你可以使用 pip 安装它。

      pip install kines
      

      然后您可以在流和分片上运行kines walk 命令来查看解码数据。

      kines walk <stream-name> <shard-id>
      

      演示:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-16
        • 2018-12-27
        • 1970-01-01
        相关资源
        最近更新 更多