Простой case
оператор должен делать то, что вы хотите:
case "$(http_status)" in
"case 1")
return 199
;;
"case 2")
return 198
;;
*)
# All is well; do nothing
;;
esac
Вы можете использовать подстановочные знаки, например. г. *"timed out"*)
или *"ConnectionError"*)
.
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, поэтому синтаксический анализ здесь полностью произвольный -.