jq — фильтр для JSON прямо в bash. Незаменим при работе с API, конфигами и логами.

# достать поле
echo '{"name":"alice","age":30}' | jq '.name'

# из массива — все элементы
cat data.json | jq '.users[]'

# фильтр: только активные пользователи
cat data.json | jq '.users[] | select(.active == true)'

# выбрать только поля name и email
cat data.json | jq '.users[] | {name, email}'

map() применяет выражение к каждому элементу массива:

# увеличить все цены на 10%
jq '.items | map(.price * 1.1)' catalog.json

# получить список имён как bash-массив
mapfile -t names < <(jq -r '.users[].name' data.json)

-r убирает кавычки из строк — удобно для дальнейшей передачи в bash.

#linux #bash #json #jq #sysadmin