Comecei a escrever sobre asserções de look-ahead e look-behind apenas para saber que sed não as suporta! Isso deve fazer o truque:
sed -i 's!\(=[^=]*=\)[^/]*/!!'
- Como usamos o caractere
/
no regexp, alteramos o delimitador do comandos
para!
-
\(=[^=]*=\)
é um grupo de captura que corresponde a um caractere=
seguido por zero ou mais outros caracteres seguidos por outro caractere=
. Esta parte é necessária para garantir que haja dois caracteres=
antes da substring a ser excluída conforme você disse que precisa -
[^/]*/
corresponde ao que está entre os delimitadores e o segundo delimitador -
substitui toda a cadeia combinada pelo que corresponde ao grupo de captura
\(=[^=]*=\)