免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1829 | 回复: 4
打印 上一主题 下一主题

[文件目录] 请教这个shell 脚本咋写 [复制链接]

论坛徽章:
2
射手座
日期:2013-10-29 16:22:32丑牛
日期:2013-11-25 16:29:17
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-06 14:09 |只看该作者 |倒序浏览
本帖最后由 kakaliu 于 2014-11-06 14:16 编辑
  1. #!/bin/bash

  2. listfile=`ls  *.sql.gz | awk -F"_" '{print $1}'`
  3. #bakdate=`ls | awk -F"_" '{print $3}'`
  4. yesterday=`date -d '-1 days' +%Y%m%d`

  5. localdir="/home/Administrator/test"

  6. for i in $listfile
  7. do
  8. mkdir -p $i/$yesterday
  9. done
复制代码
我现在localdir目录有如下文件 是从远处FTP下载下来的
文件名如下
gold_20141105.sql.gz  
hp_20141105.sql.gz等等文件


现在要求把以.sql.gz结尾的文件 转移到对应的目录下

/home/Administrator/test/gold/20141105/gold_20141105.sql.gz  
/home/Administrator/test/hp/20141105/hp_20141105.sql.gz






论坛徽章:
5
巨蟹座
日期:2014-08-28 18:12:342015年迎新春徽章
日期:2015-03-04 10:01:4415-16赛季CBA联赛之江苏
日期:2016-04-28 09:43:3115-16赛季CBA联赛之吉林
日期:2016-06-22 10:34:4315-16赛季CBA联赛之山西
日期:2016-08-16 16:29:55
2 [报告]
发表于 2014-11-06 14:18 |只看该作者
类似这样的
  1. for i  in `ls *.sql.gz`
  2. do
  3.       dirs=${i%%_*}
  4.       tmps=${i##*_}
  5.       dates=${tmps%%.*}
  6.       cp $i $localdir/${dirs}/${dates}/$i

  7. done
复制代码
没测试过

论坛徽章:
10
金牛座
日期:2014-09-16 19:02:48技术图书徽章
日期:2015-11-24 01:37:29操作系统版块每日发帖之星
日期:2015-11-18 06:20:002015年亚洲杯之沙特阿拉伯
日期:2015-04-13 17:33:462015年迎新春徽章
日期:2015-03-04 09:51:162015年辞旧岁徽章
日期:2015-03-03 16:54:15午马
日期:2014-12-04 19:33:55白羊座
日期:2014-09-17 19:34:42巨蟹座
日期:2014-09-16 21:09:4815-16赛季CBA联赛之同曦
日期:2016-06-27 23:23:07
3 [报告]
发表于 2014-11-06 14:49 |只看该作者
Linux_manne 发表于 2014-11-06 14:18
类似这样的没测试过



再加点判断,目标目录不存在则先创建,不然cp就失败了。

论坛徽章:
2
白羊座
日期:2014-06-17 11:04:28午马
日期:2014-12-29 15:37:13
4 [报告]
发表于 2014-11-06 15:01 |只看该作者
  1. remote_dir=/home/Administrator/test/
  2. for i in `ls localdir`;do
  3.     newdir=${remote_dir}$(echo $i|sed -r 's/([^_]+)_([^.]+).sql.gz/\1\/\2/')
  4.     if [ -d $newdir ];then
  5.         mv $i $newdir
  6.     else
  7.         mkdir -p $newdir
  8.         mv $i $newdir
  9.     fi
  10. done
复制代码

论坛徽章:
2
白羊座
日期:2014-06-17 11:04:28午马
日期:2014-12-29 15:37:13
5 [报告]
发表于 2014-11-06 15:02 |只看该作者
  1. #!/usr/bin/env python2.7
  2. #-*- coding:utf8 -*-

  3. import os,re

  4. sep = os.sep
  5. local_dir = '/opt/localdir'
  6. remote_dir = '/home/Administrator/test'
  7. files = os.listdir(local_dir)
  8. filecount = len(files)

  9. for i in xrange(filecount):
  10.     if 'sql.gz' in files[i]:
  11.         dir1 = re.search('([^_]+)_([^.]+).sql.gz',files[i]).group(1)
  12.         dir2 = re.search('([^_]+)_([^.]+).sql.gz',files[i]).group(2)
  13.         if not os.path.isdir('%s%s%s%s%s'%(remote_dir,sep,dir1,sep,dir2)):
  14.             os.makedirs('%s%s%s%s%s'%(remote_dir,sep,dir1,sep,dir2))
  15.             os.popen('mv %s %s%s%s%s%s'%(files[i],remote_dir,sep,dir1,sep,dir2)).read()
  16.         else:
  17.             os.popen('mv %s %s%s%s%s%s'%(files[i],remote_dir,sep,dir1,sep,dir2)).read()
  18.             
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP