linux shell 脚本实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件

#!/bin/bash
#业务实现:根据文件内容中的每行分隔符放入数组,根据规则打印日志并重新创建目录 备份文件
#
#文件名FilePath  文件内容如下	
#bjzhadmin1525416085913/chwj0.jpg,bjzhongh,2018,03
#boangnadmin1523867175489/chwj0.jpg,boang,2018,03
#boangnadmin1523867237581/chwj0.jpg,boangrb,2018,03
#cqdboadmin1523872400061/chwj0.jpg,cqdianb,2018,03
#dhstadmin1530240454562/chwj0.jpg,dahanst,2018,03
#datangadmin1526367335047/chwj0.jpg,datang,2018,03
#feitianadmin1522825520992/chwj0.png,feitian,2018,03
#fenghadmin1524627508674/chwj0.jpg,fenghou,2018,03
#gxadmin1525759701702/chwj0.jpg,gxhyllhz,2018,03
#gzyxnewadmin1523416077332/chwj0.jpg,gzyxnew,2018,03
#gzzqhbadmin1526366655878/chwj0.png,gzzqbmhz,2018,03
#hzjjadmin1542694022549/chwj0.jpg,hangzjj,2018,03
#hzltadmin1526267199291/chwj0.jpg,hangzlt,2018,03
#hzltadmin1526267239897/chwj0.jpg,hangzltds,2018,03


#循环读文件  line的值为每一行的信息
for line in `cat ./FilePath`
do
	#要将$a分割开,先存储旧的分隔符
	OLD_IFS="$line"
	#设置分隔符
	IFS="," 
	#如下会自动分隔 加入数组
	arr=($line)
	#根据数组下标判断文件是否存在
	if [[ ! -f /data/www/flowbilling/${arr[0]} ]];then
		#不存在则记录日志  更改路径为从服务器存放路径  后期手动更改文件名 chwj变量 改为 chfile变量
		echo "/home/www/flowbilling-report/TuikuanIamges/${arr[0]},${arr[1]},${arr[2]},${arr[3]}" >> qvdaoduizhangdan.txt
	#如果文件路径存在,将其放入新路径
	else 
		#创建目录 级联创建           参数代表着   chcode      年份     月份     去掉文件名后的目录
		#/data/www/flowbilling/chsettlement/chcode/年份/月份/filename/chwj变量.文件格式
		mkdir /data/www/flowbilling/chsettlement/${arr[1]}/${arr[2]}/${arr[3]}/${arr[0]%/*} -p
		#复制原文件 到新目录下
		cp /data/www/flowbilling/${arr[0]} /data/www/flowbilling/chsettlement/${arr[1]}/${arr[2]}/${arr[3]}/${arr[0]}
	fi
done

猜你喜欢

转载自blog.csdn.net/weixin_44578029/article/details/114593751