SPLIT命令用法

有时间发现文件太大,用VI编辑不了,用SPLIT命令按大小分成多个小文件

[aix1]:[/dsg/cxf/frequent_ddl/ds/rmp/0305]$ ls -al
total 287632
drwxr-xr-x    2 oracle11 dba            4096 Mar 05 14:03 .
drwxr-xr-x    5 oracle11 dba            4096 Mar 05 13:50 ..
-rw-r--r--    1 oracle11 dba         2146507 Mar 05 13:50 2.9.xf1.snd_filter0_after
-rw-r--r--    1 oracle11 dba         2236809 Mar 05 13:58 2.9.xf1.snd_filter0_after.txt
-rw-r--r--    1 oracle11 dba        71403808 Mar 05 13:50 2.9.xf1.snd_filter0_before
-rw-r--r--    1 oracle11 dba        71450905 Mar 05 13:50 2.9.xf1.snd_filter0_before.txt
[aix1]:[/dsg/cxf/frequent_ddl/ds/rmp/0305]$ split -b 5m 2.9.xf1.snd_filter0_before.txt
[aix1]:[/dsg/cxf/frequent_ddl/ds/rmp/0305]$ ls -al
total 427200
drwxr-xr-x    2 oracle11 dba            4096 Mar 05 14:04 .
drwxr-xr-x    5 oracle11 dba            4096 Mar 05 13:50 ..
-rw-r--r--    1 oracle11 dba         2146507 Mar 05 13:50 2.9.xf1.snd_filter0_after
-rw-r--r--    1 oracle11 dba         2236809 Mar 05 13:58 2.9.xf1.snd_filter0_after.txt
-rw-r--r--    1 oracle11 dba        71403808 Mar 05 13:50 2.9.xf1.snd_filter0_before
-rw-r--r--    1 oracle11 dba        71450905 Mar 05 13:50 2.9.xf1.snd_filter0_before.txt
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xaa
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xab
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xac
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xad
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xae
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xaf
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xag
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xah
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xai
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xaj
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xak
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xal
-rw-r--r--    1 oracle11 dba         5242880 Mar 05 14:04 xam
-rw-r--r--    1 oracle11 dba         3293465 Mar 05 14:04 xan
[aix1]:[/dsg/cxf/frequent_ddl/ds/rmp/0305]$

`split`命令是Linux系统中用于将大文件分割成较小文件的一个非常有用的工具。它支持基于行数、字节数等标准对文件进行切割,并允许用户自定义输出文件名前缀。 **基本语法** ```bash split [选项]... [输入文件[输出前缀]] ``` 如果没有指定输入文件,则默认从标准输入读取数据;如果未提供输出前缀,默认会创建名为 `x*` 的分片文件(例如:`xaa`, `xab`, 等)。 ### 使用示例 #### 按大小拆分文件 如果你想按照每个文件包含固定的字符数目来切分原始文件,可以使用 `-b` 参数: ```bash # 将 largefile.txt 切分成每部分最多含50MB的数据块 split -b 50m largefile.txt output_prefix_ ``` 这里生成的新文件将会像 `output_prefix_aa`, `output_prefix_ab` 这样命名。 #### 根据行数划分文本内容 若需要依据特定行数来进行分离操作,那么你可以利用 `-l` 或者更常用的现代版本中的 `--lines=`: ```bash # 把 mytextfile.txt 分割为若干个小文件,每个小文件含有2048条记录(行) split --lines=2048 mytextfile.txt chunk_of_mytextfile_ ``` 以上命令会产生类似于 `chunk_of_mytextfile_aa`, `chunk_of_mytextfile_ab` 的片段集合。 #### 自动编号并添加字母后缀给产生的文件们 对于希望让结果更为直观易懂的情况来说,可通过结合其他GNU核心实用程序如`seq`(序列) 来达到此目的: ```bash split -d -a 3 somebigdata.csv data_part_ # 数字模式(-d), 设置长度为3位(-a 3),以数字作为后缀 ``` 这将依次建立诸如 `data_part_000`, `data_part_001` ... 直至所有原文件内的信息都被妥善处理完毕为止。 ### 其他常用功能点 - **仅显示而不实际保存到磁盘上**: 如果只想预览而不想真正地去制作副本的话,可以在前面加上`cat`配合管道符一起运用。 ```bash cat hugefile | split -b 10k - ``` 请注意,在这种情形下你需要手动捕获stdout流里的临时文件路径再进一步加工或者直接通过终端查看它们的内容。 总之,掌握好`split`这个小巧却强大的指令能够极大地方便我们日常工作中涉及到大型文档管理的任务流程!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值