1、遇到的问题:接收多个不同文件,判断这些文件是否解析过,如果解析过就不再解析,反之解析,文件解析后会带时间后缀存放在备份路径。
#新文件类型:CS_20220622_CSFile.txt、CS_20220622_File.txt... #备份文件类型:CS_20220622_CSFile.txt_20220622120000、CS_20220622_File.txt__20220622150000...
2、准备:ljc_000in为解析路径文件夹,ljc_000bak为解析后备份文件夹,ljc_000为文件接收路径,ljc_0001为判断解析过的文件存放路径。
#! /bin/bash #新文件类型:CS_20220622_CSFile.txt、CS_20220622_File.txt... #备份文件类型:CS_20220622_CSFile.txt_20220622120000、CS_20220622_File.txt__20220622150000... #获取新文件 cd $home/ljc_000 file_new="*txt*" #遍历新文件 for file_newName in ${file_new} do #获取解析后的备份文件 cd $home/ljc_000bak file_bak ="*txt*" #遍历解析后的备份文件 for file_bakName in ${file_bak} do #将备份文件名截取后与新文件名对比 if [ ${file_newName} == ${file_bakName%_*} ];then cd $home/ljc_000 #如果文件名一样就不再解析,存放其他路径下 mv ${file_newName} $home/ljc_0001 fi done #处理文件名不相同文件 cd $home/ljc_000 fileNum=`ls -l|grep ${file_newName}|wc -l` #如果文件名不相同文件存在,就放到解析路径 if [ ${fileNum} -ge 1 ];then mv ${file_newName} $home/ljc_000in fi done