免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: ssxssx
打印 上一主题 下一主题

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

论坛徽章:
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
21 [报告]
发表于 2014-07-16 17:02 |只看该作者
回复 19# jason680

谢谢,学习了,有没有办法从001开始呢?
   

论坛徽章:
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
22 [报告]
发表于 2014-07-16 17:21 |只看该作者
回复 20# yestreenstars

没注意到...是从0开始
哇! 好像 不行(不是从1开始---无法自设)...

new split version can do that, but my "split (GNU coreutils) 8.13" didn't support


Usage: /usr/gnu/bin/split [OPTION]... [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is 'x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   generate suffixes of length N (default 2)
      --additional-suffix=SUFFIX  append an additional SUFFIX to file names.
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes[=FROM]  use numeric suffixes instead of alphabetic.
                                   FROM changes the start value (default 0).

  -e, --elide-empty-files  do not generate empty output files with '-n'
      --filter=COMMAND    write to shell COMMAND; file name is $FILE
  -l, --lines=NUMBER      put NUMBER lines per output file
  -n, --number=CHUNKS     generate CHUNKS output files.  See below
  -u, --unbuffered        immediately copy input to output with '-n r/...'
      --verbose           print a diagnostic just before each
                            output file is opened
      --help     display this help and exit
      --version  output version information and exit
   

论坛徽章:
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
23 [报告]
发表于 2014-07-16 17:27 |只看该作者
回复 21# jason680

我这里这样写可以哦,你试一下:
  1. [root@localhost test]# split -b100M -da3 --numeric-suffixes=1 --filter='cat > $FILE.txt' file abc_
  2. [root@localhost test]# ls
  3. abc_001.txt  abc_002.txt  file
复制代码
  1. [root@localhost test]# split --version
  2. split (GNU coreutils) 8.22
复制代码

论坛徽章:
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
24 [报告]
发表于 2014-07-16 17:48 |只看该作者
回复 21# jason680

-d后面的a是啥意思?
   

论坛徽章:
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
25 [报告]
发表于 2014-07-16 18:01 |只看该作者
本帖最后由 jason680 于 2014-07-16 18:05 编辑

回复 23# yestreenstars


    -da3 ==> -d -a 3

   -a, --suffix-length=N   generate suffixes of length N (default 2)

I think you can use below command:

split -b100M -d1 -a3 --additional-suffix=.txt file abc_

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
26 [报告]
发表于 2014-07-16 20:04 |只看该作者
被楼上给回答了..没什么可说的了...

论坛徽章:
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
27 [报告]
发表于 2014-07-16 23:23 |只看该作者
回复 24# jason680

不行,一定要用长参数的形式:
  1. [root@localhost test]# split -b100M -d1 -a3 --additional-suffix=.txt file abc_
  2. split: 无法以多于一种的方式切分输入
  3. Try 'split --help' for more information.
  4. [root@localhost test]# split -b100M --numeric-suffixes=1 -a3 --additional-suffix=.txt file abc_
  5. [root@localhost test]# ls
  6. abc_001.txt  abc_002.txt  file
  7. [root@localhost test]#
复制代码

论坛徽章:
1
处女座
日期:2014-09-18 16:18:00
28 [报告]
发表于 2014-07-17 00:13 |只看该作者
split真是个神奇的工具,从来没用过

论坛徽章:
0
29 [报告]
发表于 2014-07-17 10:27 |只看该作者
回复 26# yestreenstars

哥们 你好  我把你那个带入到SHELL里每天执行  发现了一个问题
split -C 100M     mm_nn_F_111_${deal_date}_NNN.DAT  mm_nn_F_111_${deal_date}_
mv  mm_nn_F_111_${deal_date}_NNN.DAT     111_${deal_date}_NNN.DAT
ls  mm_nn_F_111_${deal_date}_* | sort | awk '{f=sprintf("mm_nn_F_111_${deal_date}_%03d.DAT",++i);system("mv "$0" "f)}'
发现文件最后生成了这样   mm_nn_F_111__001.DAT      mm_nn_F_111__002.DAT
文件名字都多了一个下划线  这是为什么呢  能指点下嘛


   

论坛徽章:
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
30 [报告]
发表于 2014-07-17 11:54 |只看该作者
回复 28# ssxssx

mm_nn_F_111_${deal_date}_NNN.DAT是你要分割的文件的文件名吗?
${deal_date}的值是什么?
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP