Когда я пытаюсь использовать jq в cygwin для обработки файла json, я всегда получаю сообщение
assertion "cb == jq_util_input_next_input_cb" failed: file "/usr/src/ports/jq/jq-1.6-1.x86_64/src/jq-1.6/src/util.c", line 371, function: jq_util_input_get_position
Я видел несколько других сообщений об этом, но, похоже, я не нашел решения. Есть ли способ заставить его работать?
Я использую jq 1.6 в cygwin.
Обновлять:
Это мой файл JSON:
{
"users": [
{
"userId": 1,
"firstName": "firstName_1",
"lastName": "lastName_1",
"phoneNumber": "111111111",
"emailAddress": "[email protected]"
},
{
"userId": 2,
"firstName": "firstName_2",
"lastName": "lastName_2",
"phoneNumber": "222222222",
"emailAddress": "[email protected]"
},
{
"userId": 3,
"firstName": "firstName_3",
"lastName": "lastName_3",
"phoneNumber": "333333333",
"emailAddress": "[email protected]"
},
{
"userId": 4,
"firstName": "firstName_4",
"lastName": "lastName_4",
"phoneNumber": "444444444",
"emailAddress": "[email protected]"
},
{
"userId": 5,
"firstName": "firstName_5",
"lastName": "lastName_5",
"phoneNumber": "555555555",
"emailAddress": "[email protected]"
}
]
}
Если я использую это:
echo "$(<file_1.json)" | jq -r '["ID","NAME"], ["--","------"], (.users[] | .userId, .lastName)'
Я получаю это:
[
"ID",
"NAME"
]
[
"--",
"------"
]
1
lastName_1
2
lastName_2
3
lastName_3
4
lastName_4
5
lastName_5
Если я попробую это:
echo "$(<file_1.json)" | jq -r '["ID","NAME"], ["--","------"], (.users[] | .userId, .lastName) | @tsv'
Я получаю это:
ID NAME
-- ------
assertion "cb == jq_util_input_next_input_cb" failed: file "/usr/src/ports/jq/jq-1.6-1.x86_64/src/jq-1.6/src/util.c", line 371, function: jq_util_input_get_position
Aborted (core dumped)
Я исходил из этой ссылки: Как отформатировать строку JSON в виде таблицы с помощью jq?
Вам не хватало скобок массива вокруг .userId, .lastName
(которые также присутствуют в решении, на которое вы ссылаетесь).
["ID","NAME"], ["--","------"], (.users[] | [.userId, .lastName]) | @tsv
ID NAME
-- ------
1 lastName_1
2 lastName_2
3 lastName_3
4 lastName_4
5 lastName_5
немного больше деталей, таких как командная строка, примеры данных?