`

网站图片文件按规则批量转移_2_代码实现

阅读更多
#!/bin/sh

#初始化目录
if [ ! -d "/web/www/item_images/2004" ];
then
mkdir /web/www/item_images/2004
fi
if [ ! -d "/web/www/item_images/2005" ];
then
mkdir /web/www/item_images/2005
fi
if [ ! -d "/web/www/item_images/2006" ];
then
mkdir /web/www/item_images/2006
fi
if [ ! -d "/web/www/item_images/2007" ];
then
mkdir /web/www/item_images/2007
fi
if [ ! -d "/web/www/item_images/2008" ];
then
mkdir /web/www/item_images/2008
fi
if [ ! -d "/web/www/item_images/2009" ];
then
mkdir /web/www/item_images/2009
fi

#基本目录
basedir="/web/www/item_images"
#工作目录为00-99
#workdir=$(ls $basedir | egrep '^[0-9]{2}$')
workdir=$(ls -d $basedir/* | egrep '/[0-9][0-9]$')
#遍历并拷贝文件
for file in $workdir
do
#如果是目录存在则处理
if [ -d $file ];
then   
#处理2004年的item images,用正则表达式表达数值范围,好像是有点笨,不过很好的解决了我的问题,正则表达式代表文件名称为100005-101242之间的,则拷贝到对应的目录
filelist2004=$(ls $file | egrep '(10000[5-9]|1000[1-9][0-9]|100[1-9][0-9]{2}|101[0-1][0-9]{2}|1012[0-3][0-9]|10124[0-2])')
for file2004 in $filelist2004
do  
#目标目录
tail2004=$(basename $file)
head2004=$(dirname $file)
yyyy2004="/2004/"
targetpath2004=$(echo $head2004$yyyy2004$tail2004)
#目标目录不存则创建
if [ ! -d "$targetpath2004" ];
then
mkdir $targetpath2004
fi

#源文件全路径名
srcpath2004=$(echo $file"/"$file2004)
#拷贝文件
#cp srcpath2004 $targetpath2004  
#echo "$srcpath2004 -> $targetpath2004/$file2004"  >>testlog2004.txt
print "$srcpath2004 -> $targetpath2004/$file2004" | tee –a testlog2004.txt
done
      
#处理2005年的item images
filelist2005=$(ls $file | egrep '(10124[3-9]|1012[5-9][0-9]|101[3-9][0-9]{2}|102[0-9]{3}|103[0-1][0-9]{2}|1032[0-5][0-9]|10326[0-4])')
for file2005 in $filelist2005
  do
  #目标目录
tail2005=$(basename $file)
head2005=$(dirname $file)
yyyy2005="/2005/"
targetpath2005=$(echo $head2005$yyyy2005$tail2005)
#目标目录不存则创建
if [ ! -d "$targetpath2005" ];
then
mkdir $targetpath2005
fi

#源文件全路径名
srcpath2005=$(echo $file"/"$file2005)
#拷贝文件
#cp srcpath2005 $targetpath2005  
#echo "$srcpath2005 -> $targetpath2005/$file2005"  >>testlog2005.txt
print "$srcpath2005 -> $targetpath2005/$file2005" | tee –a testlog2005.txt
done

#处理2006年的item images
filelist2006=$(ls $file | egrep '(10326[7-9]|1032[7-9][0-9]|103[3-9][0-9]{2}|104[0-9]{3}|105[0-2][0-9]{2}|1053[0-7][0-9]|10538[0-4])')
for file2006 in $filelist2006
do
#目标目录
tail2006=$(basename $file)
head2006=$(dirname $file)
yyyy2006="/2006/"
targetpath2006=$(echo $head2006$yyyy2006$tail2006)
#目标目录不存则创建
if [ ! -d "$targetpath2006" ];
then
mkdir $targetpath2006
fi

#源文件全路径名
srcpath2006=$(echo $file"/"$file2006)
#拷贝文件
#cp srcpath2006 $targetpath2006  
#echo "$srcpath2006 -> $targetpath2006/$file2006"  >>testlog2006.txt
print "$srcpath2006 -> $targetpath2006/$file2006" | tee –a testlog2006.txt
done

#处理2007年的item images
filelist2007=$(ls $file | egrep '(10538[5-9]|10539[0-9]|105[4-9][0-9]{2}|10[6-9][0-9]{3}|108[0-3][0-9]{2}|10840[0-9]|10841[0-4])')
  for file2007 in $filelist2007
  do
  #目标目录
tail2007=$(basename $file)
head2007=$(dirname $file)
yyyy2007="/2007/"
targetpath2007=$(echo $head2007$yyyy2007$tail2007)
#目标目录不存则创建
if [ ! -d "$targetpath2007" ];
then
mkdir $targetpath2007
fi

#源文件全路径名
srcpath2007=$(echo $file"/"$file2007)
#拷贝文件
#cp srcpath2007 $targetpath2007
print "$srcpath2007 -> $targetpath2007/$file2007" | tee –a testlog2007.txt  
#echo "$srcpath2007 -> $targetpath2007/$file2007"  >>testlog2007.txt
  done

#处理2008年的item images
    filelist2008=$(ls $file | egrep '(10841[5-9]|1084[2-9][0-9]|108[5-9][0-9]{2}|109[0-9]{3}|11[0-1][0-9]{3}|112[0-5][0-9]{2}|1126[0-4][0-9]|11265[0-2])')
  for file2008 in $filelist2008
  do
  #目标目录
tail2008=$(basename $file)
head2008=$(dirname $file)
yyyy2008="/2008/"
targetpath2008=$(echo $head2008$yyyy2008$tail2008)
#目标目录不存则创建
if [ ! -d "$targetpath2008" ];
then
mkdir $targetpath2008
fi

#源文件全路径名
srcpath2008=$(echo $file"/"$file2008)
#拷贝文件
#cp srcpath2008 $targetpath2008
print "$srcpath2009 -> $targetpath2008/$file2008" | tee –a testlog2008.txt  
#echo "$srcpath2008 -> $targetpath2008/$file2008"  >>testlog2008.txt
  done
  
  #处理2009年的item images
    filelist2009=$(ls $file | egrep '(11265[4-9]|1126[6-9][0-9]|112[7-9][0-9]{2}|11[3-4][0-9]{3}|115[0-7][0-9]{2}|11580[0-9]|11581[0-8])')
  for file2009 in $filelist2009
  do
  #目标目录
tail2009=$(basename $file)
head2009=$(dirname $file)
yyyy2009="/2009/"
targetpath2009=$(echo $head2009$yyyy2009$tail2009)
#目标目录不存则创建
if [ ! -d "$targetpath2009" ];
then
mkdir $targetpath2009
fi

#源文件全路径名
srcpath2009=$(echo $file"/"$file2009)
#拷贝文件
#cp srcpath2009 $targetpath2009
print "$srcpath2009 -> $targetpath2009/$file2009" | tee –a testlog2009.txt 
#echo "$srcpath2009 -> $targetpath2009/$file2009"  >>testlog2009.txt
  done
fi    
done
分享到:
评论

相关推荐

    python按顺序重命名文件并分类转移到各个文件夹中的实现代码

    本篇文章将详细介绍如何使用Python来实现按顺序重命名文件并根据编号将它们分类转移到不同的文件夹中。 首先,我们需要导入两个Python内置模块:`os` 和 `shutil`。`os` 模块提供了许多与操作系统交互的函数,包括...

    大量数据转移

    2. `Form1.cs` 和 `ChildForm.cs`: 这是对应设计时文件的代码实现,包含逻辑处理和事件响应,如按钮点击、数据验证等。 3. `Program.cs`: 这是程序的启动点,定义了应用程序的主要入口,控制程序的启动流程。 4. `...

    接入平台代码包

    此"接入平台代码包"可能包含了一系列的源代码、配置文件、文档和库,这些资源共同作用于创建一个可扩展且易于管理的接入层。代码包的重复提及可能是强调其重要性或者表明该包是为特定接入平台设计的。 标签“代码”...

    风讯网站内容管理系统(FoosunCMS)

    批量转移,批量生成 评论审核 内部联接管理 信息采集分页处理功能 会员管理 图片管理 下载管理 信息采集系统 流量统计系统 投稿管理 投票管理 广告管理 会员系统支持DVBBS会员切换功能 支持第3方插件 ...

    网奇CMS网站管理系统 v6.0.2 bulid2015.07.09.zip

    网奇CMS网站管理系统是由网奇公司开发的一套安全易用的CMS系统,本系统采用ASP.NET内核开发,本系统最大的特点是;后台管理功能强大,网站运行速度快,支持静态输出,网站安全性极高,对搜索引擎收录支持性好,24小时自动...

    Total Commander文件管理

    此外,它还提供了批量重命名功能,允许用户按照特定规则一次性修改多个文件的名称。 3. **插件支持**:通过安装插件,Total Commander 可以扩展其功能,例如支持更多的文件格式、增加压缩和解压功能等。如压缩包中...

    applem2_20120610苹果引擎配套工具,内有登陆器配置

    2、重新调整装备合成功能设置,具体详见:M2--查看--装备合成 按SHIFT键支持批量操作 3、剑侠界面增加装备合成功能,通过人物背包中的“合成”按钮打开 4、增加NPC对话框可支持自定义框架及文字显示范围,并推出相...

    小精豆网络相册V3.0网络图片存储系统源码(高仿淘小宝)

    用户轻松体验功能,缩略图浏览,列表浏览,图片批量转移,批量复制,批量删除(商业版),普通删除、批量上传功能,普通删除、批量上传时选择长传命名规则(商业版),图片名称模糊查找(商业版),文件夹管理中:...

    文件名大小写批量转换工具

    在IT行业中,文件名的大小写管理是一项基础但重要的任务,尤其在跨平台操作或保持代码规范时。标题提到的“文件名大小写批量转换工具”是一个专为此目的设计的应用程序,它允许用户方便地处理大量文件名的大小写转换...

    小精豆新版

    用户轻松体验功能,缩略图浏览,列表浏览,图片批量转移,批量复制,批量删除(商业版),普通删除、批量上传功能,普通删除、批量上传时选择长传命名规则(商业版),图片名称模糊查找(商业版),文件夹管理中:...

    汇编批量反C相关说明(1).docx

    本文档旨在解析《汇编批量反C相关说明(1).docx》中提到的技术细节与实现步骤,涉及了汇编语言代码的自动化分析与注释过程,具体包括函数识别、寄存器追踪、全局变量与局部变量的检测、条件转移逻辑分析以及特定操作...

    Total Commander 8.5b9 & 注册文件

    5. **批量重命名**:用户可以轻松地对大量文件进行批量重命名,只需定义一个规则,Total Commander 就会自动应用到所有选定的文件。 6. **FTP客户端**:内置的FTP客户端允许用户直接通过Total Commander 进行上传、...

    站长 IIS7配置404与301

    此外,对于大规模的URL重定向,可以使用工具如ISAPI_Rewrite或IIS的URL Rewrite模块批量处理,通过导入规则文件实现。 在实际操作中,还需要注意以下几点: - 确保404页面仍然能够正常返回404状态码,以便搜索引擎...

    如何设置网站301跳转(z)

    - 对于大型网站,批量处理301重定向可能更为复杂,需谨慎操作,避免影响网站稳定性。 - 定期审计网站的301重定向,确保它们仍然有效且符合当前网站结构。 通过以上步骤和知识,您可以有效地为您的网站设置301跳转...

    可以进行自动复制的软件

    综上所述,自动复制软件是一种通过编程实现的工具,它简化了文件转移过程,提高了效率,减少了人为错误,并且可以根据用户需求进行定制。这类软件的使用可以广泛应用于个人工作流优化、企业数据备份策略,甚至于...

    数据的导出导入

    提供的文件名表明存在针对不同操作系统的版本,如sqluldr2_linux64_10204.bin和sqluldr2_linux32_10204.bin,分别对应64位和32位Linux系统。sqluldr264.exe和sqluldr2.exe则可能是Windows系统的64位和32位版本。这...

    整站下载器

    整站下载器是一种专门用于批量下载网站内容的工具,它能够帮助用户获取网站上的所有页面、图片、视频、音频以及其他相关资源,以便离线浏览或备份。这种工具在需要研究某个网站内容、创建本地镜像或者没有网络环境但...

    高效导入Execl

    5. **创建控制文件**:为了能够使用SQL\*Loader进行数据导入,需要创建一个控制文件(.ctl文件),该文件定义了数据文件的结构、目标表的定义以及导入规则等。 6. **执行SQL\*Loader命令**:通过运行SQL\*Loader...

    NACHAFileUtilities:用于在C#中创建Nacha文件-全国自动票据交换所协会,该文件是在美国用于转移付款的文件

    NACHAFileUtilities 是一个C#项目,专为创建Nacha文件而设计,这些文件是美国银行系统中广泛使用的支付转移格式。NACHA(全美自动清算所协会)是管理电子支付规则的组织,其制定的标准使得金融机构之间能够安全、...

    Python-PokemonGo的Pokemon管理器

    通过这个管理器,玩家可以更高效地管理自己的队伍,例如批量转移不需要的精灵,从而优化存储空间并提升队伍的整体实力。 首先,我们要理解Python在编程中的角色。Python是一种高级编程语言,以其简洁明了的语法和...

Global site tag (gtag.js) - Google Analytics