Tengo una cantidad de archivos en una carpeta, y quiero reemplazar cada carácter de espacio en todos los nombres de archivo con guiones bajos. ¿Cómo puedo conseguir esto?Linux - Reemplazar espacios en los nombres de archivo
Respuesta
Esto debe hacerlo:
for file in *; do mv "$file" `echo $file | tr ' ' '_'` ; done
Creo que su respuesta está en Replace spaces in filenames with underscores.
Si bien esto puede teóricamente responder a la pregunta, [sería preferible] (http://meta.stackexchange.com/q/8259) para incluir las partes esenciales de la respuesta aquí y proporciona el enlace para referencia. –
Pruebe algo como esto, suponiendo que todos los archivos .txt fueron de:
for files in *.txt; do mv “$files” `echo $files | tr ‘ ‘ ‘_’`; done
tiene el error abajo tr: dos cadenas se debe dar al traducir mv: falta argumento de archivo Pruebe 'mv --help' para más información. –
Agin error tr: demasiados argumentos Pruebe 'tr --help 'para obtener más información. mv: falta argumento de archivo Pruebe 'mv --help' para más información. –
Si utiliza bash:
for file in *; do mv "$file" ${file// /_}; done
cuando he intentado, tengo mv: al mover varios archivos, último argumento debe ser un directorio Pruebe '--help mv' para más información. mv: al mover varios archivos, último argumento debe ser un directorio Pruebe '--help mv' para más información. –
Debe ser '$ {FILE// _}' – soulmerge
que solo reemplaza 1 espacio – ghostdog74
Uso sh ...
for i in *' '*; do mv "$i" `echo $i | sed -e 's/ /_/g'`; done
Si Si desea probar esto antes de apretar el gatillo simplemente cambie mv
a echo mv
.
Este también funcionó bien –
Cita sus variables:
for file in *; do echo mv "'$file'" "${file// /_}"; done
eliminar el "eco" para hacer el cambio de nombre real.
¡Se está haciendo eco de los comandos de mv de forma inmediata, pero sin realmente cambiar el nombre del archivo! –
eliminación de eco produce error como mv: Imposible identificar '\ '1130 lago Micigan view.jpg \' ': No existe el fichero o directorio mv: Imposible identificar' \' 1130_1_bedroom_floor_plan.jpg \ '': No existe el fichero o directorio MV: no puede stat '\ '1130_BedPicture_8.jpg \' ': no existe el fichero o directorio mv: Imposible identificar' \' 1130_diningroom_table.jpg \ '': no existe el fichero o directorio –
¿cuál es su sistema operativo? – ghostdog74
yo prefiero usar el comando 'Cambiar nombre', que tiene expresiones regulares al estilo Perl:
rename "s/ /_/g" *
Se puede hacer un ensayo con el indicador -n:
rename -n "s/ /_/g" *
esto funcionará si * * que tiene el cambio de nombre de estilo Perl y no Cuanto más simple sea RedHat/Fedora uno –
la versión Fedora serían 'renombrar "" "_" *' ' –
rename' no está disponible en OS X que aparece. –
¿Qué pasaría si ¿Desea aplicar la tarea de reemplazo recursivamente? ¿Cómo lo harías tú?
Bueno, acabo de encontrar la respuesta yo mismo. No es la solución más elegante (intenta renombrar también archivos que no cumplen con la condición) pero funciona. (Por cierto, en mi caso que tenía que cambiar el nombre de los archivos con '% 20', no con un guión bajo)
#!/bin/bash
find . -type d | while read N
do
(
cd "$N"
if test "$?" = "0"
then
for file in *; do mv "$file" ${file// /%20}; done
fi
)
done
La forma más fácil de reemplazar una cadena (carácter de espacio en su caso) con otra cadena en Linux
es usando sed
. Puede hacerlo de la siguiente manera
sed -i 's/\s/_/g' *
Espero que esto ayude.
Estoy tratando de ejecutar este como un script https://hastebin.com/xemitireri.bash,
#!/bin/bash
# https://stackoverflow.com/questions/1806868/linux-replacing-spaces-in-the-file-names
find . -type d | while read N
do
(
cd "$N"
if test "$?" = "0"
then
for file in *; do mv "$file" ${file// /_}; done
fi
)
done
que desea ejecutar este recursiva, en una carpeta, que tiene varias carpetas en el mismo, cada una de ellas con varios archivos en ellos. Tanto los nombres de las carpetas como los de los archivos tienen espacios (por ejemplo, para ejecutarlo en la carpeta "Prueba" que contiene "Buen álbum" que contiene "Disco 1", "Disco 2", etc. La carpeta de cada disco tiene "Canción 1"). .txt "," Song 2.txt "," Song 3.txt, etc.). Esto DEN cambió el nombre de las carpetas, pero no los archivos dentro de las carpetas. Recibo el error bash: cd: ./Disk 02: Ningún archivo o directorio bash: cd: ./Disk 01: No existe ningún archivo o directorio bash: cd:./ Disco 03: No existe el fichero o directorio
Esto no es una respuesta, pero otra cuestión. Por favor considere abrir una nueva pregunta. – Fabien
- 1. edad rsync y espacios en los nombres de archivo
- 2. Eliminar todos los espacios en blanco de un archivo: Linux
- 3. Reemplazar espacios en blanco con una coma en un archivo de texto en Linux
- 4. PHP: Los espacios de nombres en un único archivo con un espacio de nombres global
- 5. Flex: reemplazar todos los espacios con comas
- 6. ¿Cómo tratar los espacios en los nombres de las columnas?
- 7. ¿Espacios de nombres en Redis?
- 8. Espacios de nombres en JSON
- 9. Windows equivalente a los espacios de nombres de Linux (montajes del sistema de archivos por proceso)?
- 10. Espacios de nombres en Delphi
- 11. Vim usando gf con espacios en nombres de archivo
- 12. ¿Cómo agregar espacios de nombres en el archivo web.config?
- 13. ¿Paperclip limpia automáticamente los nombres de archivo?
- 14. espacios de nombres C# en web.config
- 15. ¿Cómo se buscan los espacios de nombres de clojure?
- 16. MySQL reemplazar todos los espacios en blanco con -
- 17. Reemplazar todos los espacios en una cadena con +
- 18. ¿Cómo se manejan los nombres de archivos con espacios?
- 19. ¿Cómo deserializo los espacios de nombres XML en C# (System.Xml.Serialization)?
- 20. ¿Cómo se documentan los espacios de nombres en JavaScript?
- 21. ¿Qué significa el sufijo `X` en los espacios de nombres?
- 22. ¿Cómo uso los espacios de nombres en Backbone con RequireJs
- 23. cómo usar espacios de nombres en css?
- 24. Animaciones de espacios de nombres
- 25. HttpResponse sustitución de guiones para espacios en los nombres de archivo
- 26. ¿Squeak admite espacios de nombres?
- 27. Cambiar el nombre de los nombres de los archivos que contienen espacios
- 28. Reemplazar todos los espacios que están dentro de llaves
- 29. reemplazar períodos finales con espacios
- 30. Linux buscar y reemplazar
Esto no funcionó para mí. Afirmaba que existían archivos idénticos (con los nombres de archivo incorrectos). P.ej. tratando de renombrar '1 - foo.jpg' y mi carpeta ya tenía' 1.jpg' en ella. – byxor