Tengo un problema con sed que no devuelve lo que esperaba cuando uso un patrón regex para limpiar algunos resultados de una consulta mysql.
mysql -uroot -p -e 'SELECT `path` FROM db.media_gallery' | sed -n -r 's/[^\/]+([^\s]+).*/\1/p'
La consulta devuelve un montón de filas como estas:
| /media/M/W/lmt_MWS04_8.png |
| /media/M/W/lmt_MWS02_11.png |
Cuando canalizo esto a través del comando sed mencionado anteriormente, devuelve esto:
//M/W/lmt_MWS04_8.png
//M/W/lmt_MWS02_11.png
¿A dónde fueron los "medios"? ¿Por qué elimina al azar una parte de mi cadena?
¿Alguien sabe cómo arreglar mi expresión regular?
[^\/]+
parte de su expresión regular, que no está incluida en su salida. No podemos arreglar su expresión regular a menos que sepamos lo que estaba tratando de hacer. ¿Estás tratando de recortar espacios en blanco?