提取表格数据,整合到模板——提高工作效率!
现在有需要把表格中的某几列数据提取出来并将这几列的每一行需要的字段做为变量填入一个模板,使每一行都生成一个txt文档。 这个是测试文档:sheet.csv.tar 文本是这样的: "No","Names","SN","Model",,,"Begain","End","Days",,"Receive Num","Send Num" 1,"USER1","S/N1","Model1"," ","Y","09年12月16日","09年12月24日",7," ","zjsNO57890552","zjsNO91509260" 2,"USER2","S/N2","Model2"," ","Y","09年12月21日","09年12月24日",4," ","zjsNO68607854","zjsNO11185570" 3,"USER3","S/N3","Model3"," ","Y","09年12月21日","09年12月24日",4," ","zjsNO81454976","zjsNO91509256" 4,"USER4","S/N4","Model4"," ","Y","09年12月21日","09年12月24日",4," ","zjsNO57018982","zjsNO91509304" 5,"USER5","S/N5","Model5"," ","Y","09年12月21日","09年12月24日",4," ","N/A","N/A" 6,"USER6","S/N6","Model6"," ","Y","09年12月21日","09年12月24日",4," ","N/A","N/A" 7,"USER7","S/N7","Model7"," ","Y","09年12月22日","09年12月24日",3," ","zjsNO57592120","zjsNO91509293" 8,"USER8","S/N8","Model8"," ","Y","09年12月22日","09年12月24日",3," ","zjsNO57592050","zjsNO91509293" 9,"USER9","S/N9","Model9"," ","Y","09年12月22日","09年12月24日",3," ","N/A","N/A" 10,"USER10","S/N10","Model10"," ","Y","09年12月22日","09年12月24日",3," ","zjsNO56275836","zjsNO91509315" 11,"USER11","S/N11","Model11"," ","Y","09年12月23日","09年12月24日",2," ","zjsNO76132795","zjsNO91509271" 需要提取Names[$Name]列,Model[$Model]列,End[$End]列和Send Num[$Send]列作为变量存入一个模板,模板格式为: 尊敬的$Name 您好!您的$Model已于$End发出,货运单号:$Send,请您注意查收! 经过irc上#ubuntu-cn频道三位同学的帮助,现得出三种解决方案: 1、使用awk,简明有效。该方案来自jimmyxu同学,是他第一个提出的: cat sheet.csv | sed "s/,/ /g" | sed "s/[\"]//g" | awk ‘{print "尊敬的"$2"您好!您的"$4"已于"$8"发出,货运单号:"$12",请您注意查收!"}’ 2、使用php,也很简单。该方案来自iol同学: #!/usr/bin/php <?php $handle = fopen($argv[1],"r"); while ($data = fgetcsv($handle,1000,’,')) : echo "尊敬的{$data[1]}你好!您的{$data[2]}已于{$data[6]}发出,货运单号:{$data[11]},请您注意查收!\n"; endwhile; ?> 3、使用python,导出为out.csv,并在第一列添加了手机号变量,该方案由soiamso同学提出: #!/usr/bin/env python #-*- [...]



