Como extrair nomes de arquivos simples de uma lista de caminhos de arquivos usando expressões regulares

Como extrair nomes de arquivos simples de uma lista de caminhos de arquivos usando expressões regulares

Portanto, meu gerenciador de arquivos parece não ter preservado a hierarquia de diretórios ao extrair um arquivo tar.xz. Agora minha pasta Downloads está bagunçada e cheia de arquivos que não estão em seus devidos lugares.

Quero excluir esses e somente os arquivos que estavam no arquivo para começar. Para fazer isso, estou tentando combinar as extremidades de cada caminho de arquivo na saída tar tf file.tar.xze excluir os arquivos associados.

Por exemplo, se a entrada for:

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

Quero que a saída seja:

firefox
firefox.real
Arimo-Bold.ttf

para que eu possa excluí-los.

Tenho tentado fazer isso, sed 's/.*\/([^\/]+)$/\1/'mas isso dá o erro sed: -e expression #1, char 19: invalid reference \1 on 's' command's RHSe não tenho certeza do que mais tentar.

Responder1

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

/\/$/dremove qualquer linha com final /. s|.*/||remove tudo antes do último /(se houver) e o /próprio.

informação relacionada