Tengo esta estructura de carpetas:
├── foo1
│ ├── bar1.txt
│ └── bar2.txt
├── foo2
│ ├── bar3.txt
│ └── bar4 with a space.txt
└── foo3
└── qux1
├── bar5.txt
└── bar6.txt
que me gustaría aplanar en esto, con un guión bajo entre cada nivel de carpeta:
├── foo1_bar1.txt
├── foo1_bar2.txt
├── foo2_bar3.txt
├── foo2_bar4 with a space.txt
├── foo3_qux1.bar6.txt
└── foo3_qux1_bar5.txt
He buscado y no he encontrado ninguna solución que funcione, principalmente porque mi problema tiene dos particularidades: puede haber más de un nivel de carpeta dentro de la raíz y también porque algunos archivos pueden tener espacios.
¿Alguna idea de cómo lograr esto en bash? ¡Gracias!
Editar : Ejecutando la respuesta propuesta de Gleen Jackman, obtengo esto:
Hay dos guiones bajos para la carpeta de primer nivel. ¿Alguna idea de cómo evitar esto o simplemente renombrarlo para que sea solo un guión bajo? Gracias.
foo1__qux1_bar5.txt
, dos guiones bajos en el primer nivel de carpeta que es. Intenté jugar con tu línea de bash pero nada parecía funcionar. ¿Quizás necesito agregar algo?