专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>shell基础篇>

文件分类、合并和分割之split篇

百度收藏 QQ搜藏

split用来将大文件分割成小文件。有时文件越来越大,传送这些文件时,首先将其分割可能更容易。使用v i或其他工具诸如s o r t时,如果文件对于工作缓冲区太大,也会存在一些问题。
因此有时没有选择余地,必须将文件分割成小的碎片。
split命令一般格式:

split -output_file-size input-filename output-filename
这里o u t p u t - f i l e - s i z e指的是文本文件被分割的行数。
split查看文件时,o u t p u t - f i l e - s i z e选项指定将文件按每个最多1 0 0 0行分割。如果有个文件有38行,那么将分割成3个文件,分别有
10、10、10、8行。每个文件格式为x [ a a ]到x [ z z ],x为文件名首字母, [ a a ]、[ z z ]为文件名剩余部分顺序字符组合,下面的例子解释这一点。
如passwd有38行:

[sam@chenwy split]$ ls -l
总用量 8
-rw-r--r--    1 sam      sam          1649 12月  4 11:13 passwd
-rw-rw-r--    1 sam      sam            84 12月  4 11:19 split1

[sam@chenwy split]$ split -10 passwd
[sam@chenwy split]$ ls -l
总用量 24
-rw-r--r--    1 sam      sam          1649 12月  4 11:13 passwd
-rw-rw-r--    1 sam      sam            84 12月  4 11:19 split1
-rw-rw-r--    1 sam      sam           368 12月  4 11:24 xaa
-rw-rw-r--    1 sam      sam           474 12月  4 11:24 xab
-rw-rw-r--    1 sam      sam           495 12月  4 11:24 xac
-rw-rw-r--    1 sam      sam           312 12月  4 11:24 xad
生成了四个文件,前三个文件每个文件10行,最后一个8行,分割分的文件名自动产生,格式为x[a-a][z-z]

再如split有6行:

[sam@chenwy split]$ cat split1
this is line1
this is line2
this is line3
this is line4
this is line5
this is line6
按每个文件1行分割,命令为:

[sam@chenwy split]$ split -1 split1
[sam@chenwy split]$ ls -l
总用量 32
-rw-r--r--    1 sam      sam          1649 12月  4 11:13 passwd
-rw-rw-r--    1 sam      sam            84 12月  4 11:19 split1
-rw-rw-r--    1 sam      sam            14 12月  4 11:25 xaa
-rw-rw-r--    1 sam      sam            14 12月  4 11:25 xab
-rw-rw-r--    1 sam      sam            14 12月  4 11:25 xac
-rw-rw-r--    1 sam      sam            14 12月  4 11:25 xad
-rw-rw-r--    1 sam      sam            14 12月  4 11:25 xae
-rw-rw-r--    1 sam      sam            14 12月  4 11:25 xaf
文件有6行,split按每个文件1行进行了分割,并按字母顺序命名文件。为进一步确信操作成功,观察一个新文件内容:


[sam@chenwy split]$ cat xaa
this is line1
[sam@chenwy split]$ cat xaf
this is line6

上一篇:文件分类、合并和分割之paste篇 下一篇:使用head和tail以块方式读取文本流

power by soyo123 2007-2008