Eu tenho esta estrutura de pastas:
├── foo1
│ ├── bar1.txt
│ └── bar2.txt
├── foo2
│ ├── bar3.txt
│ └── bar4 with a space.txt
└── foo3
└── qux1
├── bar5.txt
└── bar6.txt
que eu gostaria de simplificar, com um sublinhado entre cada nível de pasta:
├── foo1_bar1.txt
├── foo1_bar2.txt
├── foo2_bar3.txt
├── foo2_bar4 with a space.txt
├── foo3_qux1.bar6.txt
└── foo3_qux1_bar5.txt
Eu olhei em volta e não encontrei nenhuma solução que funcione, principalmente porque o meu problema tem duas particularidades: pode haver mais de um nível de pasta dentro da raiz e também porque alguns arquivos podem ter espaços.
Alguma idéia de como fazer isso no bash? Obrigado!
Edit : Executando resposta proposta gleen jackman eu recebo isso:
Existem dois sublinhados para a pasta de primeiro nível. Alguma idéia de como evitar isso ou apenas renomeá-lo para que seja apenas um sublinhado? Obrigado.
foo1__qux1_bar5.txt
, dois sublinhados no primeiro nível de pasta. Tentei mexer com sua linha do bash, mas nada parecia funcionar. Talvez eu precise adicionar algo?