coger columnas de final de linea

busco algun modo de imprimir las dos ultimas columnas de un path con el delimitador /

estaba mirando con el sed o cut para intentar leer de derecha a izquierda pero no he encontrado la manera.

¿alguien sabe hacerlo o se le ocurre alguna posibilidad?
Con perl, utilizando la función split pasandole la cadena con la ruta y haciendo que el delimitador sea / te devolverá un array con todos los elementos que se encuentren entre barras. Luego solo tienes que ver la longitud del array, que te dice el numero de elementos, y coger los del final.

Salu2!
sed -e 's-^.*/\(.*\)/\(.*\)$-\1 \2-'


No es a prueba de bombas... pero bue... yo personalmente no intentaría parsear un path con sed.

- ferdy
Ferdy escribió:sed -e 's-^.*/\(.*\)/\(.*\)$-\1 \2-'


Joer, el sed es complicado de narices. Las expresiones regulares son de lo peor. Yo sed no he usado, pero las de perl estan basadas en sed, y en cuanto quieres hacer algo un poco complejo ya no hay quien lo entienda.
gracias ferdy, estoy estudiandolo y comparando con otra solución parcial que habia hecho.

PD: dices que no lo harias con el sed, ¿alguna sugerencia o preferencia personal?
Para tratar con paths personalmente prefiero usar bash... pero todo depende de lo que quieras hacer, claro.

- ferdy
5 respuestas