A string original é assim:
str-str001-002_01
str-str005-006_05
Gostaria de extrair a string antes do número e depois do sublinhado, então ficaria assim:
str-str_01
str-str_05
Lembro que o sed poderia separar o padrão em grupos como este:
sed -n 's/\(^.*\)\([0-9]-[0-9]\)\(.*$\)/\1\3/p'
mas imprime:
str-str0002_01
Então me lembro que [0-9] é apenas um número, então tentei com o sinal + ou *. Então dá um resultado vazio.
obs: usando
echo 'str-str001-002_01' | sed -n 's/\(^.*\)\([0-9]-[0-9]\)\(.*$\)/\2/p'
Posso ver que combina 1-0
.
Então eu tentei com:
echo 'str-str001-002_01' | sed -n 's/\(^.*\)\([0-9]\+-[0-9]\+\)\(.*$\)/\2/p'
deixou os 2 primeiros números e só corresponde
1-002
então como fazer com que combine001-002