按名字分类脚本

2022/11/02 posted in  文章
Tags:  #脚本

目录结构

|--平时作业(按学生姓名分类).zip
|     |--distribution.sh
|     |--作业
|     |     |--数据结构-0003-作业1(word)
|     |     |     |--学院-专业-班级-学号-AAA.doc
|     |     |     |--学院-专业-班级-学号-BBB.doc
|     |     |     |--学院-专业-班级-学号-CCC.doc
|     |     |--数据结构-0003-作业2(word)
|     |     |--数据结构-0003-作业3(word)
|     |--平时作业
|     |     |--AAA
|     |     |     |--1 学院-专业-班级-学号-AAA.doc
|     |     |     |--2 学院-专业-班级-学号-AAA.doc
|     |     |     |--2 学院-专业-班级-学号-AAA.doc
|     |     |--BBB
|     |     |--CCC

16673702572930

要求

把作业中按作业次数提交的doc文件,按学生姓名重新分放

脚本

#!/bin/bash

LOG_FILE=./log.txt

function log()
{
   content="$(date '+%Y-%m-%d %H:%M:%S') $@"
   echo $content >> $LOG_FILE
}

# 日志函数
################################################

# 使用方法
# 更改运行权限 chmod 777 distribution.sh
# ./distribution.sh 作业 平时作业

sourcePatch=$1

desPath=$2

for dirname in `ls $desPath`; do

  echo ${dirname}  # 获取学生姓名

  for file in $(find $sourcePatch -name "*${dirname}.doc" -type f); do

    echo $file  # 获取同名学生文件路径

    cnt=${file: 15:1}  # 获取作业次数

    # echo $cnt $(basename $file)

    cp "$file" "$desPath/$dirname/$cnt $(basename $file)"

  done

done