I have this string and need to extract the Name values from it (it-IT-SMTf00, ru-RU-SMTf00, en-GB-SMTf00
etc.):
[Voice[Name: it-IT-SMTf00, locale: ita_ITA_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]], Voice[Name: ru-RU-SMTf00, locale: rus_RUS_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]], Voice[Name: en-GB-SMTf00, locale: eng_GBR_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]], Voice[Name: pt-BR-SMTf00, locale: por_BRA_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]], Voice[Name: es-MX-SMTf00, locale: spa_MEX_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]], Voice[Name: en-US-SMTf00, locale: eng_USA_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]], Voice[Name: fr-FR-SMTf00, locale: fra_FRA_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]], Voice[Name: es-ES-SMTf00, locale: spa_ESP_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]], Voice[Name: de-DE-SMTf00, locale: deu_DEU_f00, quality: 300, latency: 300, requiresNetwork: false, features: [version=201709251, name=NA, pairedVariant=F01, gender=female]]]
Using regex101.com
I can match the pattern I require using this regex pattern:
Name: ([a-zA-Z0-9\-]+)
I am interested in group 1. The question is how do I do this using sed?
I have tried echo STRING | sed -re "s/.*Name: ([a-zA-Z0-9\-]+).*/\1/g"
but this is greedy and only returns de-DE-SMTf00
.