s/(\.[0-9]+)*\.rpm$//
Esse é um grupo de quantidades arbitrárias de pontos e números, seguido por ".rpm" e fim da linha.
Eu sei um regex para remover da string todos os números
sed 's/-[0-9].*//'
Eu quero remover todas as strings que começam com números e terminam com rpm Por exemplo com essas cordas
software.v2.strings.strings.3.30.rpm
software.64.7.7.0.strings.4.30.rpm
soft.1-4-4.string.44.rpm
deve remover apenas os últimos números que terminam com rpm
Então, voltaremos
software.v2.strings.strings
software.64.7.7.0.strings
soft.1-4-4.string
Alguém sabe como fazer?
Que tal este perl um forro?
perl -pe 's/[\d.]+\.rpm$//'
Como funciona:
-p
Imprimir resultados depois de executar o código perl em cada linha no arquivo de entrada -e
código Perl s/[\d\.]\.rpm$//
Substitua os caracteres que contenham qualquer combinação de dígitos, pontos, mas termine com .rpm
com uma string em branco. Veja perldoc perlre
para saber mais sobre expressões regulares perl. Supondo que você também queira se livrar de todos os pontos em volta dos números, aqui está minha tentativa:
sed 's/[[:digit:].]*\.rpm$//'