将 tr 输出重定向到 docker 容器中的 kafka-console-producer

问题描述

我使用以下命令将文件重定向到 docker 容器内的 kafka-console-producer:

function eventListeners(){
  document.querySelector("#note").addEventListener("keypress",function (e){
      if (e.key === "Enter"){
          newNote();
      }
  })
}

由于 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' < message.json 输出重定向tr 输入?

解决方法

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

例如,< <(jq -c . < message.json)

,

< <(tr -d '\n' < message.json)

搞定