免费注册 查看新帖 |

Chinaunix

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

[文本处理] 把一个文件按照100M的数据大小split [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-16 11:30 |只看该作者 |倒序浏览
20可用积分
比如一个文件名字是abc.txt
如果这个数据文件大于100M
就按照每100M分割文件
要保证每行数据的完整性
如果数据文件大小是150M
分割的名字是 abc_001.txt   abc_002.txt
如果是230M
分割的名字是 abc_001.txt   abc_002.txt   abc_003.txt
等等依次类推 这样的东西怎么搞呢

最佳答案

查看完整内容

我来拿吧~以下是测试过程:

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
2 [报告]
发表于 2014-07-16 11:30 |只看该作者
我来拿吧~
  1. split -b 100M file
  2. ls x* | sort | awk '{f=sprintf("abc_%03d.txt",++i);system("mv "$0" "f)}'
复制代码
以下是测试过程:
  1. [root@localhost test]# ls
  2. [root@localhost test]# dd if=/dev/zero of=file bs=150M count=1
  3. 记录了1+0 的读入
  4. 记录了1+0 的写出
  5. 157286400字节(157 MB)已复制,1.6806 秒,93.6 MB/秒
  6. [root@localhost test]# ll -h
  7. 总用量 150M
  8. -rw-r--r--. 1 root root 150M 7月  16 20:06 file
  9. [root@localhost test]# split -b 100M file
  10. [root@localhost test]# ll -h
  11. 总用量 300M
  12. -rw-r--r--. 1 root root 150M 7月  16 20:06 file
  13. -rw-r--r--. 1 root root 100M 7月  16 20:06 xaa
  14. -rw-r--r--. 1 root root  50M 7月  16 20:06 xab
  15. [root@localhost test]# ls x* | sort | awk '{f=sprintf("abc_%03d.txt",++i);system("mv "$0" "f)}'
  16. [root@localhost test]# ll -h
  17. 总用量 300M
  18. -rw-r--r--. 1 root root 100M 7月  16 20:06 abc_001.txt
  19. -rw-r--r--. 1 root root  50M 7月  16 20:06 abc_002.txt
  20. -rw-r--r--. 1 root root 150M 7月  16 20:06 file
  21. [root@localhost test]# rm -f *
  22. [root@localhost test]# dd if=/dev/zero of=file bs=230M count=1
  23. 记录了1+0 的读入
  24. 记录了1+0 的写出
  25. 241172480字节(241 MB)已复制,1.49992 秒,161 MB/秒
  26. [root@localhost test]# ll -h
  27. 总用量 230M
  28. -rw-r--r--. 1 root root 230M 7月  16 20:07 file
  29. [root@localhost test]# split -b 100M file
  30. [root@localhost test]# ll -h
  31. 总用量 460M
  32. -rw-r--r--. 1 root root 230M 7月  16 20:07 file
  33. -rw-r--r--. 1 root root 100M 7月  16 20:08 xaa
  34. -rw-r--r--. 1 root root 100M 7月  16 20:08 xab
  35. -rw-r--r--. 1 root root  30M 7月  16 20:08 xac
  36. [root@localhost test]# ls x* | sort | awk '{f=sprintf("abc_%03d.txt",++i);system("mv "$0" "f)}'
  37. [root@localhost test]# ll -h
  38. 总用量 460M
  39. -rw-r--r--. 1 root root 100M 7月  16 20:08 abc_001.txt
  40. -rw-r--r--. 1 root root 100M 7月  16 20:08 abc_002.txt
  41. -rw-r--r--. 1 root root  30M 7月  16 20:08 abc_003.txt
  42. -rw-r--r--. 1 root root 230M 7月  16 20:07 file
  43. [root@localhost test]#
复制代码

论坛徽章:
780
金牛座
日期:2014-02-26 17:49:58水瓶座
日期:2014-02-26 18:10:15白羊座
日期:2014-04-15 19:29:52寅虎
日期:2014-04-17 19:43:21酉鸡
日期:2014-04-19 21:24:10子鼠
日期:2014-04-22 13:55:24卯兔
日期:2014-04-22 14:20:58亥猪
日期:2014-04-22 16:13:09狮子座
日期:2014-05-05 22:31:17摩羯座
日期:2014-05-06 10:32:53处女座
日期:2014-05-12 09:23:11子鼠
日期:2014-05-21 18:21:27
3 [报告]
发表于 2014-07-16 11:32 |只看该作者
目测这分不好拿。

论坛徽章:
5
子鼠
日期:2014-05-15 13:49:32子鼠
日期:2014-07-16 11:16:45卯兔
日期:2014-07-17 11:34:49巨蟹座
日期:2014-07-21 12:05:002015亚冠之柏太阳神
日期:2015-07-30 16:26:53
4 [报告]
发表于 2014-07-16 11:50 |只看该作者
我想问下 这个以此类推的规律是什么?就目前来说
>100 1个文件
>100 && <150  2个文件
>150 && <230 3个文件
还是没看出这个拆分后文件个数的规律``
小弟菜鸟,大神勿喷

论坛徽章:
0
5 [报告]
发表于 2014-07-16 12:28 |只看该作者
回复 3# 机智的小学生

如果这个数据文件大于100M
就按照每100M分割文件


0-100
100-200
200-300

论坛徽章:
5
子鼠
日期:2014-05-15 13:49:32子鼠
日期:2014-07-16 11:16:45卯兔
日期:2014-07-17 11:34:49巨蟹座
日期:2014-07-21 12:05:002015亚冠之柏太阳神
日期:2015-07-30 16:26:53
6 [报告]
发表于 2014-07-16 12:34 |只看该作者
回复 4# yestreenstars
等等依次类推,要是他280M分4个文件类?

   

论坛徽章:
5
子鼠
日期:2014-05-15 13:49:32子鼠
日期:2014-07-16 11:16:45卯兔
日期:2014-07-17 11:34:49巨蟹座
日期:2014-07-21 12:05:002015亚冠之柏太阳神
日期:2015-07-30 16:26:53
7 [报告]
发表于 2014-07-16 12:37 |只看该作者
回复 5# 用户名注册后不能更改
是我看题不仔细,打脸了`

   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
8 [报告]
发表于 2014-07-16 12:45 |只看该作者
回复 6# 机智的小学生

280M只能分3个~
   

论坛徽章:
5
子鼠
日期:2014-05-15 13:49:32子鼠
日期:2014-07-16 11:16:45卯兔
日期:2014-07-17 11:34:49巨蟹座
日期:2014-07-21 12:05:002015亚冠之柏太阳神
日期:2015-07-30 16:26:53
9 [报告]
发表于 2014-07-16 13:12 |只看该作者
回复 8# yestreenstars
我题目还看仔细,想多了

   

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
10 [报告]
发表于 2014-07-16 13:16 |只看该作者
本帖最后由 jason680 于 2014-07-16 13:17 编辑

回复 1# ssxssx


100M, 150M, 230M, ?

what is next?

M= 1000,000 or 1024 * 1024   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP