В принципе, упомянутые специализированные парсеры JSON являются правильным подходом. Если по какой-то причине это не работает для вас, и вас действительно интересует только это конкретное значение поля, тогда следующее быстрое, но грязное(!! )хак для извлечения значения поля:
awk '{split($1,fld,"\"firstname\":\"[[:alnum:]]*\"",sep); print(sep[1])}' <filename> | sed -e "s/\"firstname\":\"//" -e "s/\"$//"
Это в основном использует шаблон "firstname":"<some string>"
в качестве разделителя полей, печатает фактическое значение разделителя полей (, которое будет "firstname":"Blake"
в вашем случае ), и передает его через sed
, чтобы удалить метку поля, начальную двойную кавычку -и замыкающую двойную кавычку -.
Опять же, это грязный взлом, и по возможности следует использовать специальный инструмент.