【问题标题】:Redirect tr output to kafka-console-producer in docker container将 tr 输出重定向到 docker 容器中的 kafka-console-producer
【发布时间】:2021-06-19 15:55:41
【问题描述】:

我将文件重定向到 docker 容器内的 kafka-console-producer:

docker exec -i $(docker ps -a | grep "cluster-1-kafka" | grep Up | awk '{print $1}') bash -c " \
printf '%s\n%s\n' 'security.protocol=PLAINTEXT' 'sasl.mechanism=PLAIN' > prop && \
kafka-console-producer --producer.config=prop  --bootstrap-server localhost:9092 --topic events" < message.json

由于kafka-console-producer 将文件中的每一行视为单独的消息,我需要使用tr -d '\n' &lt; message.json 从文件中删除换行符

如何将tr 输出重定向到docker exec 输入?

【问题讨论】:

    标签: linux bash docker apache-kafka tr


    【解决方案1】:

    不确定您是否应该使用tr,因为任何错误的调用都会破坏您的 JSON。请改用jq

    例如,&lt; &lt;(jq -c . &lt; message.json)

    【讨论】:

    • 它返回-bash:{"message text"}: No such file or directory
    • &lt; &lt;(cat message.json | jq -c .) 成功了。谢谢。
    • 啊,是的,我不确定那里的符号是否正确
    【解决方案2】:

    使用 &lt; &lt;(tr -d '\n' &lt; message.json)完成它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2016-12-06
      • 2017-12-01
      • 1970-01-01
      • 2015-06-12
      • 2018-03-23
      • 1970-01-01
      相关资源
      最近更新 更多