Je voudrais supprimer [] dans plusieurs noms de fichiers. J'obtiens une erreur lorsque je le fais avec la commande rename.
Y a-t-il une autre façon de procéder?
[]
sont des caractères spéciaux dans la syntaxe Perl Regex qui est utilisée par la commande rename
. Utilisation \
devant eux. Exemple:
rename "s/\[|\]/_/g" *
c'est à dire:
s replace
[
| or
]
with
_
* for all files here
Je préfère utiliser cette commande:
for file in $(echo *|grep -E '(\[|\])'); do mv $file $(echo $file|sed -r 's/(\[|\])/_/g'); done
Cela remplacera tous les crochets pour souligner le répertoire courant.