Как добавить имя файла json при использовании cat

#json #jq #filenames

Вопрос:

Я новичок в JQ и работаю над набором данных о событиях. Я выбираю определенные события (shot.type.id==88) из папки с несколькими файлами json после их объединения. Затем я выбираю некоторые переменные, представляющие интерес (идентификатор, индекс, идентификатор игрока,…). Смотрите следующий код:

 cat * | jq -r '.[] | select(.shot.type.id==88) | {id:.id, index:.index, player_id:.player.id,striker_name:.player.name} '   

Что касается вывода: я хотел бы добавить имя файла json, из которого берется событие. Я попытался ввести имя файла в » {}», но безуспешно. Любая помощь будет очень признательна!

Ответ №1:

Использование cat * уничтожает любую существующую информацию о имени файла. Измените свой конвейер, чтобы

 jq -r '...' *  

и input_filename будет оцениваться по текущему имени файла.

Комментарии:

1. Это сработало! Большое спасибо 🙂