免费注册 查看新帖 |

Chinaunix

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

[系统管理] 急求循环分包压缩处理上万文件 [复制链接]

论坛徽章:
1
巨蟹座
日期:2013-10-12 09:53:21
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-10-29 15:23 |只看该作者 |倒序浏览
本帖最后由 taosicai 于 2015-10-29 15:32 编辑

大家好,我要每100个文件为一组处理(以压缩为例,我会换成其它的,如先转换,再打包,然后压缩,最后删除)后压缩,请问该如何处理?
文件名是顺序数字的,长度相同(16:10前要完成)。
0000000.log
0000001.log
……
0000010.log
……
0000100.log
0000101.log
……
0000200.log
……
0001000.log
……
0009999.log
我要把0~99文件 压缩成 f.000.tar
把100~199压缩成f.001.tar
如此类推
把9900~9999压缩成f.099.tar
循环和压缩和删除的通配符不知道该怎么写

论坛徽章:
84
每日论坛发贴之星
日期:2015-12-29 06:20:00每日论坛发贴之星
日期:2016-01-16 06:20:00每周论坛发贴之星
日期:2016-01-17 22:22:00程序设计版块每日发帖之星
日期:2016-01-20 06:20:00每日论坛发贴之星
日期:2016-01-20 06:20:00程序设计版块每日发帖之星
日期:2016-01-21 06:20:00每日论坛发贴之星
日期:2016-01-21 06:20:00程序设计版块每日发帖之星
日期:2016-01-23 06:20:00程序设计版块每日发帖之星
日期:2016-01-31 06:20:00数据库技术版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-16 06:20:00程序设计版块每日发帖之星
日期:2016-01-14 06:20:00
2 [报告]
发表于 2015-10-29 16:28 |只看该作者
看时间过了,估计你也不着急了

不知道你的shell是否支持这个语法: echo {0000000..0000099}

论坛徽章:
0
3 [报告]
发表于 2015-10-29 16:48 |只看该作者
曾经 看过SQL技术里面的一篇文章.  觉得很好
建议如下:
1. 编写一个脚本, 生成需要执行的 文件.
--------------example-----------
tar -cvf  /usr/f.000.tar   0000000.log  0000002.log  ....
tar -cvf  /usr/f.001.tar  0000100.log  0000101.log   ....

2. 运行这个脚本即可

论坛徽章:
0
4 [报告]
发表于 2015-10-29 17:00 |只看该作者
实际 测试命令:
$ ls |xargs -n 100 |awk -F'\n' '{ printf "tar -cvf f.%03d.tar %s\n",$NF,$0}' >2.txt

结果还可以

参照图片

111.png (0 Bytes, 下载次数: 36)

111.png

论坛徽章:
0
5 [报告]
发表于 2015-10-29 17:02 |只看该作者
运行后的结果

论坛徽章:
0
6 [报告]
发表于 2015-10-29 17:05 |只看该作者
结果如下图所示:
------------------

222.png (79.78 KB, 下载次数: 38)

222.png

论坛徽章:
9
寅虎
日期:2013-12-02 12:49:22巨蟹座
日期:2014-07-18 18:13:34卯兔
日期:2014-07-25 14:43:08子鼠
日期:2014-07-26 10:10:51酉鸡
日期:2014-07-31 15:09:562015亚冠之本尤德科
日期:2015-05-19 09:27:382015亚冠之卡尔希纳萨夫
日期:2015-06-20 10:30:212015亚冠之阿尔纳斯尔
日期:2015-07-01 20:46:062015亚冠之城南
日期:2015-07-15 21:12:00
7 [报告]
发表于 2015-10-29 21:50 |只看该作者
本帖最后由 lifayi2008 于 2015-10-29 21:51 编辑
  1. for i in $(seq -w 000 099);do tar -zcv -f f.${i}.tar 00${i}[0-9][0-9].log;rm -rf 00${i}[0-9][0-9].log;done
复制代码
删除文件前请先备份
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP