GNU/Linux >> Tutoriales Linux >  >> Linux

Cambiar el nombre de los archivos en Linux con una expresión regular

Solución 1:

Solía ​​escribir secuencias de comandos perl para hacer esto, hasta que descubrí el comando de cambio de nombre.

Acepta una expresión regular de perl para hacer el cambio de nombre:

para esto, acabo de escribir dos comandos:

rename 's/(\w+)-(\w+)-(\d\d)-(\d{4})-NODATA.txt\$1.$4$3$2.log$//' *
rename 'y/A-Z/a-z/' *.log

Sin embargo, para algunas distribuciones, rename no tiene esta funcionalidad (consulte su página de manual), y es posible que deba instalar perl-rename o prename .

Solución 2:

mmv es una utilidad estándar de Linux para mover/renombrar varios archivos. Está disponible en los repositorios para la mayoría de las distribuciones. Para su ejemplo anterior, podría hacer:

mmv '*-Log-*-*-*-NODATA.txt' '#l1.#4#3#2.log'

Para obtener más información, lea este artículo debaday o la página del manual.

Solución 3:

Como no tengo un comando de cambio de nombre, confío en esto:

for myfile in /my/folder/*; do
    target=$(echo $myfile|sed -e 's/foo/bar/g')
    mv "$myfile" "$target"
done

Solución 4:

rename util no es muy "estándar". Cada distribución se envía con un rename diferente herramienta. Por ejemplo, aquí en Gentoo, rename es de sys-apps/util-linux paquete y no es compatible con expresiones regulares.

Hamish Downer sugirió mmv , parece útil, especialmente para usar dentro de scripts.

Por otro lado, para el caso general, es posible que desee cambiar el nombre de utils. Tiene qmv y qcp comandos, que abrirán un editor de texto de su elección (mi preferencia:Vim) y le permitirán editar los nombres de archivo de destino allí. Después de guardar y cerrar el editor, qmv /qcp hará todo el cambio de nombre.

Ambos mmv y qmv son lo suficientemente inteligentes como para cambiar el nombre de los archivos en el orden correcto y también para detectar cambios de nombre circulares, y crearán automáticamente un archivo temporal si es necesario.


Linux
  1. Cómo cifrar archivos con gocryptfs en Linux

  2. Cambiar el nombre de muchos archivos en Linux según un patrón

  3. ¿Hay un comando de Linux como mv pero con expresiones regulares?

  4. ¿Cómo cambio el nombre de los archivos con espacios usando el shell de Linux?

  5. Archivos que desaparecen en el servidor Linux

Tutorial de comandos Linux zforce con ejemplos

Cómo cambiar el nombre de los archivos usando la línea de comandos en Linux

Cómo cambiar el nombre de un archivo (s) en Linux

Extensión de cambio de nombre de varios archivos de Linux

Comando lsof en Linux con ejemplos

Comando Linux comm con ejemplos