需求是这样的,我们需要补一批excel表(目标时间段内每天一个),每个文件内容都差不多,一个个手动复制显然太low,windows系统又不会写批处理脚本,所以萌发了linux上写脚本修改的想法。
先捋一下需求
- 文件名包含那一天的日期
- 跳过周六周日
- 最好excel的时间戳也是当天的,计划创建时间是9:00到9:30随机,修改时间是18:00到18:30随机
脚本如下
#!/bin/bash time1=`date -d $1 +%s` time2=`date -d $2 +%s` time3=$( date -d `date +%F` +%s) dur1=`echo "(${time3}-${time1})/86400"|bc` dur2=`echo "(${time3}-${time2})/86400"|bc` for n in `seq ${dur2} ${dur1}` do w_num=`date -d "-$n day" +%w` if [ ${w_num} -eq 6 -o ${w_num} -eq 0 ];then continue else dat=`date -d "-$n day" +%Y%m%d` cd /tmp/oo cp xuy.xlsx xuy.${dat}.xlsx second1=$[$RANDOM%60] if [ $second1 -lt 10 ];then second1=0${second1} fi second2=$[$RANDOM%60] if [ $second2 -lt 10 ];then second2=0${second2} fi min1=$[$RANDOM%30] if [ $min1 -lt 10 ];then min1=0${min1} fi min2=$[$RANDOM%30] if [ $min2 -lt 10 ];then min2=0${min2} fi touch -a xuy.${dat}.xlsx -t ${dat}09${min1}.${second1} touch -m xuy.${dat}.xlsx -t ${dat}18${min2}.${second2} fi done
遗留问题,无论是打包保存到本地,还是sz到本地,时间戳都没有按照预想显示,需要后续修整