我必须为我的工作创建大约40多个员工评估表(我有表格的Excel模板),并且我在excel表中列出了他们所有的名字。
我想知道/希望是否有办法自动化复制模板的过程,然后根据excel中的员工姓名重命名它,并将新文件放在一个名为该员工的文件夹中。
我也可以同时使用linux或windows。我觉得我必须有一些SED表达才能为我处理这个问题。
答案 0 :(得分:1)
employees.txt
,其中每个员工姓名都在新行上。希望这不是问题,因为有大约40名员工。我确信那里有一个宏可以自动化这个过程。dos2unix employees.txt
template.xls
复制到employees.txt
目录,employeesDir
在linux中执行此脚本:
cd employeesDir;
employees=`cat employees.txt`;
for e in $employees; do
mkdir $e;
cp template.xls
$e/$e.xls;
done;
答案 1 :(得分:0)
我认为使用awk
最简单。你当然必须保存为文本文件
$ 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
或者,简化为单行:
awk '{system("cp \'name.skel\' \'" $1 "_" $2 ".eval\'")}' names
这假设您希望它们名为lastname_firstname.eval
,列为lastname firstname ...
;很明显,根据需要更改名称和数字。
如果您使用csv,则需要添加-F,
。