Contamos con tu ayuda para compartir nuestros artículos referente a las ciencias informáticas.
Solución:
los -n
la bandera es para
–no-acto
Sin acción: muestra qué archivos se habrían renombrado.
Así que es normal si no tienes ningún cambio.
En cuanto a su comando, está funcionando para mí:
$ touch "a @ test"
$ ls
a @ test
$ rename -n 's/ |$|@/_/g' *
a @ test renamed as a___test
Tal vez, dependiendo de tu caparazón, tengas que escapar del |
$ rename -n 's/ |$|@/_/g' *
O puedes usar el […]
notación para agrupar caracteres:
$ rename -n 's/[ @$]/_/g' *
Podrías intentar así:
for file in ./*Block*
do echo mv "$file" "$file//[ ()@$]/_"
done
Si está satisfecho con el resultado, elimine el echo
antes de mv
para cambiar el nombre de los archivos.
Buscando un script atractivo para eliminar caracteres especiales, así como caracteres especiales alemanes, reemplazándolos con universales para no eliminar información útil. Actualicé la última versión del script que tenía algunos problemas menores que resultaron en:
#!/bin/bash
for file in ./*
do
infile=`echo "$file:2"|sed
-e 's|""|"\"|g'
-e 's| | |g' -e 's|!|!|g'
-e 's|@|@|g' -e 's|*|*|g'
-e 's|&|&|g' -e 's|]|]|g'
-e 's|}|}|g' -e 's|"|"|g'
-e 's|,|,|g' -e 's|?|?|g'
-e 's|=|=|g' `
outfileNOSPECIALS=`echo "$file:2"|sed -e 's|[^A-Za-z0-9._-]|_|g'`
outfileNOoe=`echo $outfileNOSPECIALS| sed -e 's|ö|oe|g'`
outfileNOae=`echo $outfileNOoe| sed -e 's|ä|ae|g'`
outfileNOue=`echo $outfileNOae| sed -e 's|ü|ue|g'`
outfileNOOE=`echo $outfileNOue| sed -e 's|Ö|OE|g'`
outfileNOAE=`echo $outfileNOOE| sed -e 's|Ä|AE|g'`
outfileNOUE=`echo $outfileNOAE| sed -e 's|Ü|UE|g'`
outfileNOss=`echo $outfileNOUE| sed -e 's|ß|ss|g'`
outfile=$outfileNOss
if [ "$infile" != "$outfile" ]
then
echo "filename changed for " $infile " in " $outfile
mv "$infile" $outfile
fi
done
exit
Resultando en:
@don_crissti: Está haciendo tonterías con el archivo interno ya que Linux tendría sus propios problemas con el manejo de caracteres especiales al mover el nombre del archivo.
valoraciones y reseñas
Eres capaz de apoyar nuestra misión ejecutando un comentario o valorándolo te lo agradecemos.