Se você for usar sed, não há necessidade de usar também o grep. Experimente:
npm info webpack | sed -En "s/version: '(.*)',//p"
Exemplo:
$ echo "version: '2.1.0-beta.12'," | sed -En "s/version: '(.*)',//p"
2.1.0-beta.12
Alternativa: usando o awk
Da mesma forma, se usar o awk, não há necessidade de também grep:
npm info webpack | awk -F"[ ',]+" '/version:/{print $2}'
Exemplo:
$ echo "version: '2.1.0-beta.12'," | awk -F"[ ',]+" '/version:/{print $2}'
2.1.0-beta.12
Como funciona:
-
-F"[ ',]+"
Isso diz ao awk para usar espaços, aspas simples ou vírgulas ou qualquer combinação deles como separadores de campo.
-
/version:/{print $2}
Se uma linha contiver
version:
, imprima o segundo campo.