项目中需要整理一些资料,把word文档中的一些关键字段提取到excel,制成一个表单。额,本来想手动改的,无奈数据太庞大,就萌生了写个脚本来处理的想法。闲话不多说,具体看情景,下面是经过简单处理的excel。
下面我要做自动填充,把空着的按照上面的数据做填充。思路,awk可以完成这项任务。
首先把表格复制到一个txt文件中,方便读写,shell直接读写excel没有研究,在这主要是为了解决问题。
awk 'BEGIN{row=0;r1=0;r2=0;r3=0;r4=0;r5=0;r6=0;r7=0;FS="\t"} {if(row>=0) {if($1!=NULL) r1=$1; if($2!=NULL) r2=$2; if($3!=NULL) r3=$3; if($4!=NULL) r4=$4; if($5!=NULL) r5=$5; i=0; print r1"\t"r2"\t"r3"\t"r4"\t"r5"\t"$6} row++;}END{}' $1
判断row主要是是否忽略第一行(如果第一行是标题就忽略,这里没有标题,所以row>=0)。
把代码复制到stexcel.awk中,属性改为可执行
运行 stexcel xx.txt > new_xx.txt
把new_xx.txt 复制到excel中就完成了自动填充。
效果如下:
好了,到此结束。