Я пишу сценарий bash, использующий jq для фильтрации записей JSON по заданным переменным bash и возвращения некоторых значений ключа из каждой записи в файл с разделителями табуляции. Я думаю, что первые несколько строк этой команды в порядке, но 4-я строка вызывает проблему. Я попытался передать каждую запись в строке 4 tostring, но безрезультатно.
info=`cat $FILE | jq -r \
' .[] \
| map(select(.host| contains(env.A))) \
| [."ip.A",."ts",."ip.B"] \
| @tsv'`
Пример записи в формате JSON:
{
"ts": "2019-06-19T00:00:00.000000Z",
"ip.A": "0.0.0.0",
"ip.B": "0.0.0.0",
"host": "www.google.com",
}
В этих файлах нет скобок, окружающих весь текст в файле.
Ошибка дана:
jq: error (at <stdin>:0): Cannot iterate over string ("2019-06-18...)
Нужно ли обрабатывать ".ts" каким-то особым образом?