Linux FIND buscando archivos con nombres entre comillas simples
Estoy intentando guardar los resultados del comando FIND en una matriz para luego poder realizar algunos comandos AWK con ellos.
Mi código actual es: files_arr=("$(find "$1" -type f \( -name '*.txt' -o -name '*.doc' \) -perm -a=r -print)")
- Este código debería encontrar todos los archivos con espacios y sin espacios y devolverlos en mi matriz (y también deben ser legibles).
- EL PROBLEMA es que cuando tengo un directorio llamado ‘not easy’ y dentro de este directorio hay archivos llamados ‘file one’ y ‘file two’, obtendré: ‘not easy/file one’, lo que quiero obtener es: ‘not easy’/’file one’.
- Estaba pensando en usar SED para agregar comillas, pero agregaría comillas incluso si solo tuviera un archivo de una sola palabra que no las tiene.
- Gracias por sus consejos.
davy.ai
Para guardar correctamente los resultados del comando FIND en un array, necesitarás hacer algunas modificaciones en tu código. Aquí tienes lo que puedes hacer:
Explicación:
files_arr
. Esto asegura que los elementos del array estén correctamente formateados para los comandos AWK y evita el problema de no incluir las comillas simples alrededor del nombre de directorio con espacios.${files_arr[index]}
.Con estas modificaciones, deberías poder guardar con éxito los resultados del comando find en un array y utilizar comandos AWK en él. ¡Buena suerte!