jq:error:syntax error,意外的无效字符(Unix shell引用问题?);顶级>;

jq:error:syntax error,意外的无效字符(Unix shell引用问题?);顶级>;,shell,curl,jq,apache-kafka-connect,Shell,Curl,Jq,Apache Kafka Connect,在我的ubuntu机器中,我遵循这一点将数据从mysql流式传输到kafka主题。在那里,在 卡夫卡连接设置主题,当我运行以检查我的连接器是否与此一起运行时(如建议的那样): 我得到了这个错误: jq:错误:语法错误,意外的无效\u字符(Unix shell 报价问题?)第1行: [.name、.connector.state、.tasks[].state]| \ jq:1编译错误(23)写入正文失败(23)写入正文失败 我完全卡住了。如果可能,请任何人帮助。 N.B.:这不是重复的问题,虽然标

在我的ubuntu机器中,我遵循这一点将数据从mysql流式传输到kafka主题。在那里,在 卡夫卡连接设置主题,当我运行以检查我的连接器是否与此一起运行时(如建议的那样):

我得到了这个错误:

jq:错误:语法错误,意外的无效\u字符(Unix shell 报价问题?)第1行: [.name、.connector.state、.tasks[].state]| \
jq:1编译错误(23)写入正文失败(23)写入正文失败

我完全卡住了。如果可能,请任何人帮助。

N.B.:这不是重复的问题,虽然标题类似的问题存在,但问题不同,我已经仔细检查过了。

您正在滥用
\
。使用:

curl -s "http://localhost:8083/connectors" | 
jq '.[]' |
xargs -I mysql-connector curl -s "http://localhost:8083/connectors/mysql-connector/status" |
jq -c -M '[.name,.connector.state,.tasks[].state] |
join(":|:")' |
column -s : -t |
tr -d \" |
sort

jq
全部放在一行可能会更简洁,但关键是,如果您试图在单引号内转义换行符,则在
jq
命令中会出现一个不属于该行的文字反斜杠。

去掉后面的反斜杠。在引号内,您不需要(或不想)跳出换行符。此外,将
sed的//\“//g'
替换为
tr-d'
更好的是,只需删除
sed
并在
jq
中添加一个
-r
。不确定您的格式,但
-r
通常是删除引号的更好方法。
curl -s "http://localhost:8083/connectors" | 
jq '.[]' |
xargs -I mysql-connector curl -s "http://localhost:8083/connectors/mysql-connector/status" |
jq -c -M '[.name,.connector.state,.tasks[].state] |
join(":|:")' |
column -s : -t |
tr -d \" |
sort