免费注册 查看新帖 |

Chinaunix

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

split多个连续文件分割,如何保证文件号连续?请大虾指教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-15 12:56 |只看该作者 |倒序浏览
本帖最后由 C307307 于 2011-05-15 15:15 编辑

这里有个问题,简化如下:
假如我生成了10个文件,分别为
file_0001.dat,file2_0002.dat,……,file_0010.dat,每个文件的大小为45M,但要求生成的文件大小不能超过10M,举例如下:
file_0001.dat有45M,则要分成5个文件,分别为new_file_0001.dat,newfile_0002.dat,……,newfile_0005.dat,不管newfile_0005.dat是否
到达10M,file_0002.dat必须从newfile_0006.dat开始分割。所以最后肯定会生成50个文件,
文件从newfile_0001.dat到newfile_0050.dat.
这时候用split命令来分割,如何完成?

ps:这10个文件是依次生成的,也就是可以在每个文件生成后,来split一下。

论坛徽章:
0
2 [报告]
发表于 2011-05-15 13:29 |只看该作者
先split,然后cat:
  1. split -b ${blocksize}m ${file} ${filename}
  2. cat ${filename}?* > ${filename}
复制代码

论坛徽章:
2
射手座
日期:2014-10-10 15:59:4715-16赛季CBA联赛之上海
日期:2016-03-03 10:27:14
3 [报告]
发表于 2011-05-15 13:43 |只看该作者
本帖最后由 yinyuemi 于 2011-05-15 13:48 编辑

回复 1# C307307


    Try:
  1. n=0
  2. for i in *.dat
  3. do
  4.         split -b 5M  "$i" -d x
  5.         for j in {0..4}
  6.         do
  7.                 ((n++))
  8.                 printf -v name "%04.f" $n
  9.                 mv "x0"$j "new_"$name".dat"
  10.         done
  11. done
复制代码

论坛徽章:
0
4 [报告]
发表于 2011-05-15 13:49 |只看该作者
回复 3# yinyuemi


    谢谢,这个思路可以。

论坛徽章:
0
5 [报告]
发表于 2011-05-15 13:51 |只看该作者
回复 2# xiaopan3322


    谢谢,
    这两个命令都没怎么看明白 ,能否解释下

论坛徽章:
0
6 [报告]
发表于 2011-05-15 14:18 |只看该作者
回复 5# C307307


    可能我一开始理解错了题意,拆分了以后,是不是不需要再重新重组回来的(重新组合用cat)?
    如果不需要重新重组的话,你可以用yinyuemi的思路……

论坛徽章:
0
7 [报告]
发表于 2011-05-15 14:34 |只看该作者
回复 6# xiaopan3322


    可能是我每说清楚,就是有10个文件,大小超标了,要拆分,拆分后生成的文件要按原来文件的顺序按序号排列。

论坛徽章:
0
8 [报告]
发表于 2011-05-15 14:39 |只看该作者
回复 7# C307307


    明白你的意思了,这个需求。。。单纯用split完成不了……做个workaround的吧……
    1. 可否先将那些源文件重组,然后一次性拆分
    2. 先拆分,然后对拆分后的进行处理(比如放到带文件编号的文件夹下,然后通过判断,依次重命名)

论坛徽章:
0
9 [报告]
发表于 2011-05-15 14:52 |只看该作者
回复 8# xiaopan3322


   
    1.这10个文件不能重组的,他们分别对应10张表,各自独立,不过这个想法倒不错
    2.这样肯定是可以的,不过我感觉较复杂了。

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
10 [报告]
发表于 2011-05-15 14:56 |只看该作者
回复 7# C307307


能否说说超的是什么标?为何会有那样的标?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP