Tengo un conjunto de archivos en los que me gustaría aplicar el mismo comando y la salida debe contener el mismo nombre que el archivo procesado pero con una extensión diferente.
Actualmente estoy cambiando el nombre de /my/data/Andrew.doc a /my/data/Andrew.txt. Me gustaría hacer esto para todos los archivos .doc de la carpeta / my / data / y para preservar el nombre.
Probé varias versiones, pero supongo que tengo algo mal en la sintaxis, ya que soy nuevo en Linux.
command-line
bash
Robert
fuente
fuente

Respuestas:
Hay al menos cien mil millones de formas diferentes de abordar esto, pero aquí están los principales contendientes:
The Bash for loop
Utilizando
findEl
findcomando tiene un pequeñoexeccomando encantador que es excelente para ejecutar cosas (con algunas advertencias). Encontrar es mejor que el globbing básico porque realmente puedes filtrar los archivos que estás seleccionando. Tenga cuidado con la sintaxis extraña.Tenga en cuenta que
findes recursivo, por lo que puede utilizarlo-maxdepth 1para mantenersefinden el directorio de trabajo actual.-type fse puede usar para filtrar archivos normales.Si solo estamos cambiando el nombre de doc a txt ...
El
renamecomando es como sed en la búsqueda. Obviamente, esto no hará nada para convertir el formato.fuente
fuente