Cómo extraer nombres de archivos simples de una lista de rutas de archivos usando expresiones regulares

Cómo extraer nombres de archivos simples de una lista de rutas de archivos usando expresiones regulares

Entonces, mi administrador de archivos parece no haber conservado la jerarquía de directorios al extraer un archivo tar.xz. Ahora mi carpeta de Descargas está desordenada y llena de archivos que no están en sus lugares adecuados.

Quiero eliminar esos y solo aquellos archivos que estaban en el archivo para empezar. Para hacer esto, estoy tratando de hacer coincidir los extremos de cada ruta de archivo desde la salida tar tf file.tar.xzy eliminar los archivos asociados.

Por ejemplo si la entrada es:

tor-browser_en-US/Browser/firefox
tor-browser_en-US/Browser/firefox.real
tor-browser_en-US/Browser/fonts/
tor-browser_en-US/Browser/fonts/Arimo-Bold.ttf

Quiero que la salida sea:

firefox
firefox.real
Arimo-Bold.ttf

para poder eliminarlos.

He estado intentando lograr esto sed 's/.*\/([^\/]+)$/\1/'pero aparece el error sed: -e expression #1, char 19: invalid reference \1 on 's' command's RHSy no estoy seguro de qué más intentar.

Respuesta1

sed '/\/$/d; s|.*/||'

/\/$/delimina cualquier línea con final /. s|.*/||elimina todo lo anterior al último /(si lo hay) y al /mismo.

información relacionada