Как получить только два элемента json-подобного файла

Простой caseоператор должен делать то, что вы хотите:

case "$(http_status)" in
    "case 1")
        return 199
        ;;
    "case 2")
        return 198
        ;;
    *)
        # All is well; do nothing
        ;;
esac

Вы можете использовать подстановочные знаки, например. г. *"timed out"*)или *"ConnectionError"*).

-1
26.10.2019, 02:09
1 ответ
jq -r '.windows[]|.buffers[]|.file' Session.sublime_session

Это будет использовать синтаксический анализатор JSON jqдля анализа всех узлов fileиз каждого буфера каждого окна, записанного в файле сеансов Sublime Text 3.

Чтобы получить информацию fileвместе с первым целым числом бита selection, вам придется искать в другом месте данных:

jq -r '.windows[]|.groups[].sheets[]| "\(.file):\(.settings.selection[0][0])"' Session.sublime_session

Обратите внимание, что поле fileвзято из совершенно другого места в документе по сравнению с первой командой.

В небольшом примере файла, с которым я играл, это может привести к

/Users/kk/hello:18

в качестве вывода.

(проверено на файле сеанса в macOS, где я работал с файлом с именем helloв моем домашнем каталоге)

К сожалению, я не нашел никакой документации по схеме, используемой для этих файлов JSON, поэтому синтаксический анализ здесь полностью произвольный -.

4
28.01.2020, 05:07

Теги

Похожие вопросы