Судя по вашему вопросу, вы ищете /etc/local.conf
, однако конфигурация находится внутри /etc/locale.conf
с конечной "е". Если вы не существуете и у вас есть разрешение на запись на /etc/
, то вы можете просто:
echo LANG=en_US.UTF-8 > /etc/locale.conf
и это будет работать, конечно, это пример только с языком, вы можете сделать любую конфигурацию локали, которую хотите.
Во всех приведенных ниже случаях file.json
— это имя файла, содержащего ваш документ JSON. Очевидно, вы могли бы использовать jq
, как вы сделали в вопросе, и прочитать его из канала, подключенного к выходу curl
.
Извлечение запрошенных полей по одному:
$ jq -r '.description' file.json
Tmux Plugin Manager
$ jq -r '.language' file.json
Shell
Параметр -r
используется выше (и ниже )для получения «необработанных данных», а не данных в кодировке JSON.
При получении обоих сразу (у вас возникнут проблемы с их различением, если какой-либо из них содержит встроенные символы новой строки):
$ jq -r '.language,.description' file.json
Shell
Tmux Plugin Manager
Получение их в виде записи CSV (будет правильно заключено в кавычки, так что встроенные запятые и символы новой строки будут обрабатываться синтаксическим анализатором CSV, а встроенные двойные кавычки также будут закодированы в CSV):
$ jq -r '[.language,.description] | @csv' file.json
"Shell","Tmux Plugin Manager"
Вкладка -с разделителями (встроенные символы новой строки и табуляции будут отображаться как \n
и \t
соответственно):
$ jq -r '[.language,.description] | @tsv' file.json
Shell Tmux Plugin Manager
Разрешение jq
создавать шелл-код, содержащий два присвоения переменных. Значения будут правильно указаны для оболочки.
$ jq -r '@sh "lang=\(.language)", @sh "desc=\(.description)"' file.json
lang='Shell'
desc='Tmux Plugin Manager'
Заставить оболочку действительно оценивать эти операторы:
$ eval "$( jq -r '@sh "lang=\(.language)", @sh "desc=\(.description)"' file.json )"
$ printf 'lang is "%s" and desc is "%s"\n' "$lang" "$desc"
lang is "Shell" and desc is "Tmux Plugin Manager"
- How would I extract just the "description"?
$ curl -s 'https://api.github.com/repos/tmux-plugins/tpm' | jq -r '.description'
Tmux Plugin Manager
- How do I extract the "language" & "description"?
$ curl -s 'https://api.github.com/repos/tmux-plugins/tpm'
| jq -r '.language + ": " +.description'
Shell: Tmux Plugin Manager
Предпочтительно, чтобы вторая команда терминала находилась только в одной строке.
Если вы скопируете -и вставите две строки за один раз, попробуйте использовать сдвиг + вставка для вставки в терминал.
Примечание:просто удалите флаг -r
, если вы предпочитаете получать ответы в виде строк.