¿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
sed
no 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
bash
funció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.