Copie y cambie el nombre de los files nuevos con los nombres de file de una hoja de Excel?

Tengo que crear más de 40 formularios de evaluación de empleados (tengo la plantilla de Excel para los formularios) para mi trabajo y tengo todos sus nombres en una hoja de Excel.

Me preguntaba / esperaba saber si había una manera de automatizar el process de copyr la plantilla, luego cambiarle el nombre según el nombre del empleado en Excel y colocar el nuevo file en una carpeta con el nombre del empleado.

Puedo usar tanto linux como windows para esto también. Siento que tiene que haber alguna expresión SED para manejar esto por mí.

  1. Escriba un nuevo file, employees.txt , que tenga el nombre de cada empleado en una nueva línea. Espero que esto no sea un problema porque hay ~ 40 empleados. Estoy seguro de que hay una macro que puede automatizar el process.
  2. En Linux, solo para estar seguro, ejecuta dos2unix employees.txt
  3. Copie la plantilla, template.xls , al directory employeesDir , employeesDir
  4. Ejecute este script en Linux:

     cd employeesDir; employees=`cat employees.txt`; for e in $employees; do mkdir $e; cp template.xls $e/$e.xls; done; 

Creo que esto será más fácil usando awk . Por supuesto, tendrá que save como un file de text

 $ ls copy.awk names name.skel $ cat copy.awk #!/usr/bin/awk -f BEGIN { skeleton = "name.skel" } { system("cp '" skeleton "' '" $1 "_" $2 ".eval'") } $ cat name.skel skeleton $ cat names last first junk rugbert user $ awk -f copy.awk names $ ls copy.awk last_first.eval names name.skel rugbert_user.eval $ cat last_first.eval skeleton $ cat rugbert_user.eval skeleton 

O, networkingucido a un trazador de líneas:

 awk '{system("cp \'name.skel\' \'" $1 "_" $2 ".eval\'")}' names 

Esto supone que los quiere nombrados lastname_firstname.eval y las columnas son lastname firstname ... ; obviamente, cambie nombres y numbers según sea necesario. Si usa un csv, necesitará agregar -F,