J'ai beaucoup de fichiers qui ont un motif partagé dans leur nom que je voudrais supprimer. Par exemple, j'ai les fichiers "a_file000.tga" et "another_file000.tga". Je voudrais faire une opération sur ces fichiers qui supprimerait le motif "000" de leurs noms résultant dans les nouveaux noms, "a_file.tga" et "another_file.tga".Comment faire pour supprimer des caractères spécifiques à partir de noms de fichiers en utilisant BASH
Répondre
Essayez ceci (cela fonctionne dans le vieux Bourne sh
plaine aussi bien):
for i in *000.tga
do
mv "$i" "`echo $i | sed 's/000//'`"
done
Les deux arguments sont entre guillemets doubles pour soutenir espaces les noms de fichiers.
Bash peut faire sed
-comme substitutions:
for file in *; do mv "${file}" "${file/000/}"; done
fonctionne bien sur OS X (10.6.8). Pratique et succinct. Merci. – jamesnotjim
Nice, pouvez-vous expliquer la fonction de "{"? – efrem
@efrem: Les accolades sont un délimiteur facultatif pour les noms de variables et sont nécessaires pour les extensions de paramètres. Voir le [Bash Manual] (https://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion) pour plus d'informations. –
Une solution non bash, car je sais que deux affiches rapides ont déjà couvert que:
Il y a un excellent programme Perl court appelé rename
qui est installé par défaut sur certains systèmes (d'autres ont un programme de changement de nom moins utile) . Il vous permet d'utiliser regex perl pour votre changement de nom, par exemple:
rename 's/000//' *000*.tga
#!/bin/bash
ls | while read name; do
echo mv $name ${name/$1//}
done
+1: J'aime le '| tandis que read' construire. – Cascabel
Comment "ls | while read name" est-il meilleur que "name" dans * "? –
@Laurence Gonsalves: à l'aide de caractères génériques shell développez la ligne de commande, et il y a une limite pas si grande là-bas. "while read" évite que – Javier
- 1. Comment faire pour supprimer des espaces à partir d'un XmlDocument
- 2. Comment faire pour convertir des séquences de caractères spécifiques dans une chaîne en majuscules en utilisant Python?
- 3. Comment faire pour supprimer l'espace de noms dans xslt
- 4. Comment faire quelque chose à tous les fichiers dans un répertoire en utilisant bash?
- 5. impression des noms de répertoires et ne fichiers (BASH)
- 6. Comment supprimer des caractères particuliers d'une chaîne en utilisant XSLT?
- 7. Bash globbing - autoexpand pour quelques cas spécifiques?
- 8. Comment faire pour effectuer des chaînes de caractères en Java?
- 9. Supprimer les caractères en utilisant Regex
- 10. Comment faire pour supprimer les caractères indésirables d'une chaîne?
- 11. En utilisant la ligne de commande bash, comment ajouter "import package.name. *;" à de nombreux fichiers Java?
- 12. poignée de caractères spéciaux dans bash pour ... dans la boucle
- 13. Comment faire pour supprimer le codage de caractères pour la réponse du message apache axe 2
- 14. Comment convertir des dossiers spéciaux en noms de fichiers complets
- 15. Comment faire pour supprimer le lecteur USB en utilisant C#
- 16. Comment faire pour accolade expansion-tabulation, pour les noms de fichiers dans vim?
- 17. Comment faire pour supprimer la propriété de répertoire Web IIS 6 en utilisant directoryentry en C#
- 18. comment obtenir des noms de fichiers à partir du dossier en C++
- 19. Comment faire des substitutions en utilisant sed pour windows (de cygwin) pour les fichiers utf16
- 20. Comment envoyer des fichiers CSV à des courriels spécifiques?
- 21. Lire les caractères d'un fichier texte en utilisant bash
- 22. Comment faire pour passer des demandes pas aller à des répertoires spécifiques à index.php/path?
- 23. comment faire liste des fichiers en utilisant le script .bat
- 24. Comment faire pour supprimer des caractères entre < and > dans Perl?
- 25. ftp plusieurs nouveaux fichiers en utilisant des caractères génériques
- 26. comment extraire des métadonnées à partir de fichiers html en utilisant java
- 27. Supprimer tous les fichiers/répertoires à l'exception de deux répertoires spécifiques
- 28. Fichiers de configuration contenant des paramètres spécifiques à l'environnement
- 29. Méthode préférée pour copier des fichiers JPG à partir d'un serveur distant en utilisant PHP
- 30. Utilisation de regex python pour extraire des espaces de noms à partir de sources C++
+1 pour la plupart des solutions portables (et parce que je cours trop bas sur les upvotes pour continuer à upvoting _all_ les bonnes réponses). –