Existem muitas maneiras de fazer isso, por exemplo:
-
bash e shells similares (consulte aqui para obter mais informações)
$ string=customer-asset-tag-1.0.2.9 $ echo -e "Component: ${string:0:18}\nVersion: ${string:19}" Component: customer-asset-tag Version: 1.0.2.9 -
awk$ echo $string | awk -F- -v OFS=- '{print "Component: ",,; print "Version: "}' Component: customer-asset-tag Version: 1.0.2.9Aqui, estamos definindo o delimitador de campo
awkpara-(isso é usado para definir campos, o primeiro campo é, o segundoetc). Também estamos definindo o separador de campo de saída como-, para que seja impresso corretamente. -
perl$ echo $string | perl -ne '/(.*)-([^-]+)/; print "Component: \nVersion: "' Component: customer-asset-tag Version: 1.0.2.9Esta é a mais robusta e geral das três abordagens, pois ela simplesmente procura a string mais longa de caracteres não
-e salva isso como a versão e tudo antes da versão até o último-e salva isso como uma componente.