Tengo un montón de archivos que tienen un patrón compartido en su nombre que me gustaría eliminar. Por ejemplo, tengo los archivos, "a_file000.tga" y "another_file000.tga". Me gustaría hacer una operación en esos archivos que eliminarían el patrón "000" de sus nombres, dando como resultado los nuevos nombres, "a_file.tga" y "another_file.tga".Cómo elimino caracteres específicos de los nombres de archivos usando BASH
Respuesta
probar este (esto funciona en el viejo y simple Bourne sh
así):
for i in *000.tga
do
mv "$i" "`echo $i | sed 's/000//'`"
done
Ambos argumentos se envuelven entre comillas para apoyar en espacios los nombres de archivo.
Bash puede hacer sed
-como sustituciones:
for file in *; do mv "${file}" "${file/000/}"; done
funciona muy bien en OS X (10.6.8). Práctico y sucinto. Gracias. – jamesnotjim
Bien, ¿puedes explicar la función de "{"? – efrem
@efrem: las llaves son un delimitador opcional para nombres de variables y son necesarias para la expansión de parámetros. Consulte el [Manual de Bash] (https://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion) para obtener más información. –
una solución no bash, ya que sé dos carteles rápidos ya han cubierto que:
Hay un excelente programa corto Perl llamado rename
que se instala por defecto en algunos sistemas (otros tienen un programa de cambio de nombre menos útil) . Se le permite utilizar expresiones regulares Perl para su cambio de nombre, por ejemplo:
rename 's/000//' *000*.tga
#!/bin/bash
ls | while read name; do
echo mv $name ${name/$1//}
done
- 1. Cuente recursivamente archivos específicos BASH
- 2. ¿Cómo elimino caracteres específicos de una cadena en particular en Java?
- 3. ¿Cómo elimino una función de Bash?
- 4. ¿Cómo elimino los últimos n caracteres de una cadena?
- 5. ¿Cómo elimino con seguridad los archivos .copyarea.db?
- 6. ¿Cómo obtener los nombres de los archivos?
- 7. ¿Cómo elimino los espacios de nombres de xml, usando java dom?
- 8. ¿Cómo elimino los signos de dólar ($) de los datos/escape de los caracteres especiales en R?
- 9. bash: truncar nombres de archivo, manteniéndolos única
- 10. Cómo recuperar caracteres prohibidos para nombres de archivos, en Java?
- 11. eliminar caracteres específicos de NSString
- 12. de comandos Bash para eliminar los ceros iniciales de los nombres de archivos
- 13. no ICSharpCode.SharpZipLib.Zip.FastZip comprimir archivos que tienen caracteres especiales en los nombres de archivos
- 14. cómo saber la codificación de caracteres de los nombres de archivo (según el sistema de archivos)
- 15. Caracteres de índice específicos de configuración regional
- 16. ¿Cómo poner a cero los números de los pads en los nombres de los archivos en Bash?
- 17. ¿Cuáles son los caracteres legales/permitidos para los nombres de los archivos del servidor web?
- 18. Listado recursivo de directorios usando Ruby con caracteres chinos en los nombres de archivo
- 19. Cómo comparar archivos con los mismos nombres en dos directorios diferentes usando un script de shell
- 20. ¿Cómo elimino los comentarios usando el optimizador RequireJS?
- 21. Eliminar caracteres unicode de archivos de texto - sed, otros métodos bash/shell
- 22. PHP/MySQL - Los caracteres seguros para mostrar los nombres/nombres de usuario/contraseñas, con DOP
- 23. bash: find -exec y nombres de archivo
- 24. ¿Cómo crear carpetas usando nombres de archivos y luego mover archivos a carpetas?
- 25. ¿Cómo elimino definitivamente (borrado) los archivos del historial?
- 26. ¿Cómo elimino caracteres no alfanuméricos (espacios incluidos) de una cadena?
- 27. ¿Cuáles son los caracteres válidos para los nombres de macro?
- 28. HTTP URL - caracteres permitidos en los nombres de los parámetros
- 29. SVN Archivos específicos de confirmación
- 30. Archivos específicos de GIT Branch?
+1 para la mayoría de las soluciones portátiles (y porque me estoy quedando sin mucho valor para las votaciones ascendentes para mantener el voto alcista _todas las buenas respuestas). –