Cela peut être fait, mais avec quelques réserves. Vous avez déclaré que "... ces fichiers [sont] dans mon dossier", ce qui constituerait une de ces réserves. Nous pourrions utiliser globstar
et itérer sur les noms de fichiers étendus:
$ c=0;for f in *; do ((c++)); echo "$f" "--->" file"$c".txt ; done
cat.txt ---> file1.txt
dog.txt ---> file2.txt
house.txt ---> file3.txt
tree.txt ---> file4.txt
Bien sûr, vous pouvez toujours utiliser la méthode "manuelle" via list.txt
, où vous pouvez stocker une liste de noms de fichiers et lire ce fichier via while IFS= read -r ; do ... done < list.txt
$ c=0; while IFS= read -r f; do ((c++)); echo "$f" file"$c" ; done < input.txt
cat.txt file1
dog.txt file2
tree.txt file3
Bien sûr, ce thème de liste peut être étendu de plusieurs façons: listes de csv, fichiers json, listes de valeurs-clés, etc. Il y a beaucoup de questions à ce sujet en ligne. Il y a bien sûr d'autres choix à faire, comme donner un chemin complet aux fichiers ou effectuer tout dans le même répertoire que la liste.
Enfin, j'ai déjà fait allusion à des listes de valeurs-clés. Avec bash
et d'autres langages de script plus modernes comme Python ou Perl, vous pouvez avoir un hachage (ou dictionnaire) avec la liste des fichiers et le nouveau nom correspondant que vous souhaitez que le fichier possède.