注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

红烧鱼

linux & windows management

 
 
 

日志

 
 
关于我
mac

专注IT基础架构设计与运维。 欢迎给我留言,或邮件沟通zjwsk@163.com

网易考拉推荐

利用shell script 批量处理海量文件  

2013-10-29 11:32:11|  分类: Linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近因工作,需要处理某单一目录内的近200万文件。 因为文件数量庞大,且目标App系统处理能力有限, 所以必须分批次、分隔时间移动这些文件到目标目录。
编写完成后的脚本如下述步骤4。 过程中碰到些问题,如要实现文件分割(默认流水号是abc字母)、for script循环、嵌套、休眠中断等。过程中有意义的几个步骤记录如下。

1. 将文件,每N行切割成一个新文件。切割后文件名后缀为3个(位)数字,切割后的文件,每个文件20行内容,
$split -a 3 -l 20 -d split.log
$split -a 3 -l 10000 -d directory_file_list_1027.txt macj/file_list_split-

2. for shell script 嵌套
# http://www.linuxdiyf.com/viewarticle.php?id=206569
2.1 命令行/单行模式
for i in `seq 20`; do if((i%3==0)); then echo $i; continue; fi; done
for i in `seq 12`; do echo $i; sleep 2s;echo Sleeping in 5 minutes; continue; done
for i in `seq -w 120`; do mkdir dir-$i; sleep 0s;echo Sleeping in $i minutes; continue; done
for i in `cat /data/001/v_list/vfpa_L00`; do cp /data/001/source/$i /tmp/target2 ; done


2.2 标准script 模式
#!/bin/bash
clear
for i in `seq 12`
do
    echo $i
    sleep 2s
    echo Sleeping in $i minutes
    continue
done


3. scirpt for taken file name.
#!/bin/bash
for i in `seq 8`
do
    FILENAME=/data/001/v_list/vfpa_L0$i
    ls -l "$FILENAME"
    sleep 2m
    echo process done the $i file, Sleeping in 2 minutes.
continue
done


4. script for vfpa move file.
#!/bin/bash
fsource=/data/vfpa_cq/tmp/macj/source_split-
dsource=/data/vfpa_cq/source_temp/IWSCIM
dtarget=/data/vfpa_cq/source/IWSCIM

for i in `seq -w 500`
do
    FILENAME=$fsource$i
    
    for j in `cat $FILENAME`
    do
    mv $dsource/$j $dtarget
    done

echo process done $i files, Sleeping in 15 minutes >> /data/vfpa_cq/source/mv_list_1027
sleep 15m
continue
done
  评论这张
 
阅读(650)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017