Supposons que vous ayez un répertoire avec des centaines de fichiers avec des noms de fichiers incorrects, et que vous souhaitiez remplacer chaque nom de fichier contenant par. (ceci est un exemple artificiel). Nous pouvons facilement le faire avec la commande «for» dans bash, combinée avec un peu de bonté bash. Aujourd’hui, nous allons apprendre comment remplacer du texte dans une variable dans une boucle for.
La commande «pour» fonctionne comme ceci:
pour var dans
Vous pouvez remplacer par n’importe quel modèle de correspondance de fichier, tel que * ou * .txt, et vous pouvez le remplacer par n’importe quelle commande linux. La commande sera exécutée en séquence sur chacun des fichiers correspondant au modèle de correspondance de fichier.
C’est là que la gestion des variables bash le rend encore plus intéressant. Au lieu de simplement faire quelque chose comme «mv $ var», nous pouvons remplacer le texte dans le nom de fichier en utilisant cette syntaxe:
$ {var / originaltext / replacetext}
Alors maintenant, si nous exécutons cette commande sur notre répertoire:
pour f dans *; faire mv $ f $ {f / test / prod}; fait
Pour chaque fichier correspondant à *, bash exécutera une commande similaire à celle-ci:
mv test.config prod.config
J’ai trouvé que la connaissance du shell est inestimable lors de l’administration des serveurs ou simplement pour la gestion de votre collection de fichiers, et m’a fait économiser des heures sur ce qui aurait autrement été un travail manuel.
Et oui, je me rends compte qu’il existe un certain nombre d’outils qui permettent de renommer plusieurs fichiers.