"Как использовать grep / awk для извлечения заголовка в поле из curl, когда я передаю ему документ JSON, когда содержимое хранится в переменной?"Это действительно очень сложная и уникальная проблема.
Однако, если вы постепенно смоделируете каждую часть своего кода, чтобы сузить его, вы обнаружите, что это гораздо более простой вопрос, который вы могли бы исследовать или задавать вместо этого.:
Как использовать grep / awk для содержимого из переменной?
У меня есть переменная, содержащая заголовки HTTP, и я хочу извлечь значение одного из них.Вот пример:
variable='Foo: 1
Bar: 2
Baz: 3'
Это то, что я пытался получить 2
от Bar
:
# Just hangs
tokenizer1=$variable `grep "Bar" | awk '{printf $2}'`
# Is empty
tokenizer2=$variable | `grep "Bar" | awk '{printf $2}'`
Ответ здесь заключается в использовании echo
передать содержимое так, чтобы grep мог прочитать его на stdin:
tokenizer3=$(echo "$variable" | grep "Bar" | awk '{printf $2}')
Это легко применить к вашему примеру:
tokenizer3=$(echo "$token" | grep "X-Subject-Token" | awk '{printf $2}')
echo "The value is $tokenizer3"