$ sed 's/-[^-]*\.mp4$//' file
55363642b-b13218-4cb0-8334-546565346
gfdggwg-e1321-4qwe-9ewq-de32155139d8
A expressão sed
s/-[^-]*\.mp4$//
é uma substituição que corresponde a um traço seguido por qualquer número de não traços, um ponto e a string mp4
(no final da linha). O texto correspondente é removido.
Para fazer a alteração no local, use o sinal -i
de sed
(mas execute sem primeiro para garantir que o resultado esteja correto):
sed -i 's/-[^-]*\.mp4$//' file
Se esses fossem nomes de arquivos, eu faria um loop sobre os arquivos reais:
for mp4file in *.mp4; do
printf 'The truncated name is "%s"\n' "${mp4file%-*.mp4}"
done
A substituição do parâmetro ${mp4file%-*.mp4}
seria expandida para o nome do arquivo com a string mais curta correspondente a -*.mp4
removida do final.