如何用split命令来拆分文件

split命令是什么?

split是一个类似于greptail的Unix命令行实用程序。它允许您将较大的文件分成几个较小的文件。

注意 默认情况下,split某些选项在macOS上不起作用,因为没有预先安装split的GNU版本。请先使用Homebrew命令安装brew install coreutils然后在GNU split via中调用gsplit

示例文件

1. 在文本编辑器中创建example.txt并添加以下内容:

example.txt 1 2 3 4 5 6 7 8 9 10 example line 1 example line 2 example line 3 example line 4 example line 5 example line 6 example line 7 example line 8 example line 9 example line 10

2. 下载Moby Dick的文本以演示使用更大的文件: wget -O moby-dick.txt https://archive.org/stream/mobydickorwhale01melvuoft/mobydickorwhale01melvuoft_djvu.txt

基本用法

1. 使用默认选项运行split命令: split moby-dick.txt

2. 检查您的工作目录: ls moby-dick.txt xaa xab xac xad xae xaf xag ... 目录(xaaxab等)中的新文件都包含原始文件的一部分。默认情况下,split将文件分为每个1000行的子文件。原始moby-dick.txt文件有16,000行,产生16个子文件。原始moby-dick.txt文件保持不变。

选项和参数

前缀

split命令第一个参数是文件的名称,如上所示。可选的第二个参数允许您指定输出文件的前缀。默认情况下,此值为x

split moby-dick.txt moby-dick

使用上述命令,输出的每个文件名都将以moby-dick开头。

moby-dick.txt moby-dickaa moby-dickab moby-dickac ...

按行数拆分

-l选项设置每个子文件的行长度。默认情况下,此值为1000。以下命令输出的文件将包含两行文本:

split -l 2 example.txt
$ cat xaa
example line 1
example line 2

按大小拆分

-b(或--size)选项,将通过大小,而不是行数拆分文件。以下命令将输入​​文件拆分为每个大小为100KB的子文件:

split -b 100k moby-dick.txt

您可以使用不同的单位指定此值:

  • 兆字节 -
  • 千兆字节 - g
  • 太字节 -

按文件数分割

如果要将文件拆分为特定数量的子文件,无论大小或长度如何,请使用-n选项。例如,要将文件拆分为3个部分:

split -n 3 example.txt

用数字来标记文件

使用-d选项以数字方式而不是按字母顺序标记输出文件:

split -l 2 -d example.txt
x00 x01 x02 x03 x04

设置后缀长度

使用-a选项设置标记输出文件时使用的位数或字母数。此选项默认为两个(即x00)。

split -a 1 -d -l 2 example.txt
x0 x1 x2 x3 x4

高级示例

以下命令将上面的选项进行组合并将example.txt拆分成4个子文件,每个子文件都以example-为前缀并用数字标记:

split -a 1 -n 4 -d example.txt example-
example-0 example-1 example-2 example-3 example.txt

split命令也可用于显示部分文件而无需创建子文件。以下命令将Moby Dick分解为100个(不创建任何新文件)并显示其中的第10个:

split -n 10/100 moby-dick.txt

与许多shell命令一样,通过使用管道运算符,split命令也可以接受来自另一个命令的输出作为输入:

grep whale moby-dick.txt | split -l 100

本文的版权归 Zeng 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏康怀帅的专栏

GitHub Pages 常见问题

本文列举了一些使用 GitHub Pages 遇到的问题及其解决方法。 资源 404 你可以使用以下方法中的一种来解决该问题。 禁用 jekyll 以 _下划线...

31930
来自专栏zhangdd.com

tomcat8 启动报错: ignoring option PermSize=256m处理方法

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512m; suppor...

20110
来自专栏深度学习之tensorflow实战篇

pycharm 之模块与模块引用

首先在pycharm,创建文件的快捷键ALT+INS,可以将自己常用的模版导入 ? 其次函数的模块调用规则如下图 ? 模块引用并指导源文...

40090
来自专栏小夜博客

LNMP1.3 安装 fileinfo 组件

39890
来自专栏闵开慧

centos中tree插件的使用与注意事项

1 tree的安装 yum -y install tree 使用时直接输入tree 目录名,即可显示该目录的树形结构,示例如下: ? 这样查看目录结构一目了然,...

28980
来自专栏蓝天

Exception in thread "main" java.lang.Error: Unresolved compilation problem

初学java,使用eclipse编译时,可能会遇到如下图所示的编译错误(Exception in thread "main" java.lang.Error:...

31200
来自专栏北京马哥教育

Python 的 ImportError 错误

? 问题 错误:ImportError: No module named XXX 在Python的工程中,偶尔会遇到文件无法引用的情况,即PyCharm ID...

25360
来自专栏野路子程序员

从已有安装包(vendor)恢复 composer.json

59050
来自专栏技术博文

在vim中快速复制粘贴多行

用vim写代码时,经常遇到这样的场景,复制多行,然后粘贴。 我现在这样做: 1. 将光标移动到要复制的文本开始的地方,按V(是大写V)进入可视模式。 2. 将光...

699100
来自专栏ytkah

dedecms建的网站如何去掉/index.html

DEDECMS建立的网站,www.abc.com/index.html和www.abc.com两个都可以访问,而且两个页面都是一样的,这样就会造成重复页面,对搜...

37360

扫码关注云+社区

领取腾讯云代金券