¿Cómo reemplazo solo la última aparición de "-" en una cadena con un espacio usando sed?
Por ejemplo:
echo $MASTER_DISK_RELEASE
swp-RedHat-Linux-OS-5.5.0.0-03
pero quiero obtener el siguiente resultado (reemplazando el último guión ["-"] con un espacio)
swp-RedHat-Linux-OS-5.5.0.0 03
text-processing
sed
maihabunash
fuente
fuente

sedno admiten coincidencias de patrones. En ese caso, necesitará algo más, ya seaperl -pne 's/(.*)-/$1 /'la solución de expansión de parámetros de @ Thor u otra cosa.sed -r.sed -r 's/(.*)-(.*)-/\1 \2 /').También podría manejar esto con la expansión de parámetros bash :
Salida:
fuente
Algo como esto funcionó para mí, aunque estoy seguro de que hay mejores maneras
fuente
bashfunción de expansión de parámetros, que funciona bien si OP también está usandobash. Habrá un delicado equilibrio entre la legibilidad (hasta el punto de ser muy detallado) y el uso de las herramientas adecuadas, pero la mayoría de las veces prevalece el uso de las herramientas correctas.