Je suis en train de construire un tableau en bash des noms de fichiers de ma caméra:
FILES=(2011-09-04 21.43.02.jpg
2011-09-05 10.23.14.jpg
2011-09-09 12.31.16.jpg
2011-09-11 08.43.12.jpg)
Comme vous pouvez le voir, il y a un espace au milieu de chaque nom de fichier.
J'ai essayé d'entourer chaque nom de guillemets et d'échapper l'espace avec un slash inversé, aucun des deux ne fonctionne.
Lorsque j'essaie d'accéder aux éléments du tableau, il continue de traiter l'espace comme le délimiteur d'élément.
Comment puis-je capturer correctement les noms de fichiers avec un espace à l'intérieur du nom?
0 votes
Avez-vous essayé d'ajouter les fichiers à l'ancienne ? Comme
FILES[0] = ...
? (Edit: Je viens juste de le faire ; ne fonctionne pas. Intéressant).0 votes
POSIX: stackoverflow.com/questions/2936922/… POSIX: stackoverflow.com/questions/2936922/…
0 votes
Toutes les réponses ici ne fonctionnent pas pour moi en utilisant Cygwin. Il fait des choses bizarres s'il y a des espaces dans les noms de fichiers, point. Je contourne cela en créant un "tableau" dans un fichier texte listant tous les éléments avec lesquels je veux travailler, et en itérant sur les lignes du fichier: Le formatage perturbe les backticks prévus ici entourant la commande entre parenthèses: IFS=""; array=(
find . -maxdepth 1 -type f -iname \*.$1 -printf '%f\n'
); for element in ${array[@]}; do echo $element; done