jq: error: синтаксическая ошибка, неожиданный INVALID_CHARACTER (Unix проблемы с цитированием оболочки?) в - PullRequest
0 голосов
/ 05 февраля 2020

Я перешел по этой ссылке для потоковой передачи данных из mysql в kafka topi c на моей машине с Ubuntu. Там, в настройках Kafka Connect topi c, когда я запускаю, чтобы проверить, работают ли мои разъемы с этим (как предложено там):

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| sed 's/\"//g'| sort

Я получил эту ошибку:

jq: error: синтаксическая ошибка, неожиданный INVALID_CHARACTER (Unix проблемы с цитированием оболочки?) В строке 1: [.name, .connector.state, .tasks []. State] | \
jq: 1 ошибка компиляции (23) Ошибка записи тела (23) Ошибка записи тела

Я застрял полностью. Любой, пожалуйста, помогите, если это возможно.
NB: Это не повторяющийся вопрос, хотя вопрос с похожим заголовком существует, но проблема в другом, и я хорошо проверил их.

1 Ответ

0 голосов
/ 05 февраля 2020

Вы злоупотребляете \. Использование:

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 в одну строку, но ключевой момент заключается в том, что если вы попытаетесь избежать перехода на новую строку внутри одинарных кавычек, вы получите буквальную обратную косую черту. sh в команде jq, которой там не место.

...