объединить трубы и перенаправить на curl и jq

Если я скручиваюсь на какой-то сайт, я могу получить прямо json:

curl http://httpbin.org/ip { "origin": "37.77.126.22"} 

украсить, я делаю:

 curl http://httpbin.org/ip | jq { "origin": "37.77.126.22" } 

украсить его и сохранить, я перенаправляю … но он не работает

 curl http://httpbin.org/ip | jq > output.txt { "origin": "37.77.126.22" } (23) Failed writing body 

Как это сделать?

One Solution collect form web for “объединить трубы и перенаправить на curl и jq”

Я немного удивлен, что вы получаете вывод JSON во втором примере. В моей системе jq выводит сообщение об ошибке, которое также содержит информацию об использовании:

 $ curl "http://httpbin.org/ip" | jq >file jq - commandline JSON processor [version 1.5] Usage: jq [options] <jq filter> [file...] jq is a tool for processing JSON inputs, applying the given filter to its JSON text inputs and producing the filter's results as JSON on standard output. The simplest filter is ., which is the identity filter, copying jq's input to its output unmodified (except for formatting). For more advanced filters see the jq(1) manpage ("man jq") and/or https://stedolan.github.io/jq Some of the options include: -c compact instead of pretty-printed output; -n use `null` as the single input value; -e set the exit status code based on the output; -s read (slurp) all inputs into an array; apply filter to it; -r output raw strings, not JSON texts; -R read raw strings, not JSON texts; -C colorize JSON; -M monochrome (don't colorize JSON); -S sort keys of objects on output; --tab use tabs for indentation; --arg av set variable $a to value <v>; --argjson av set variable $a to JSON value <v>; --slurpfile af set variable $a to an array of JSON texts read from <f>; See the manpage for more options. % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 33 100 33 0 0 115 0 --:--:-- --:--:-- --:--:-- 136 (23) Failed writing body 

« jq тело письма» происходит от curl когда jq вышел из системы и недоступен для чтения тела (содержимого веб-страницы).


jq требуется выражение фильтра. Самый простой фильтр . (точка), которая действует как «сквозной» фильтр (так называемый «фильтр идентификации» в приведенной выше информации об использовании):

 $ curl "http://httpbin.org/ip" | jq . >file 
  • Как соединить 2 файла JSON одним ключом
  • Установка вывода jq в переменную Bash
  • Редактирование значения дочернего элемента JSON с помощью jq
  • Используйте JQ для генерации CSV из поиска ножей
  • Использование jq для извлечения значений и форматирования в CSV
  • Interesting Posts

    как передать ls -ltr после списка файлов для записи даты и времени

    Линукс VT поддерживает 8 цветов, но в действительности существует 16 районных. Почему так?

    Как заменить строку на определенный шаблон в vi?

    Создание сетевого сервера хранения данных, компромиссы с различными конфигурациями RAID?

    Средние строки с одинаковым первым столбцом

    Команда Linux – mount возвращает ноль / 0, но не работает

    Как сделать загрузочный ISO-образ UEFI с grub-mkrescue?

    FreeBSD: все вышло из сигнала 12 после того, как «make buildworld»

    gvfs-mount не работает

    Linux (на Vmware) мгновенно отключается, когда не выполняет никакой сетевой активности

    Perl однострочный для замены значений, превышающих пороговое значение

    Есть ли файл конфигурации «rc» для grep / egrep? (~ / .egreprc?)

    Не удается загрузить окна после удаления раздела Linux

    После обновления yum рекомендуется перезапустить сервер?

    Обновление cowbuilder предупреждает об "Не перезапускать sysvinit"

    Linux и Unix - лучшая ОС в мире.