异常有效的 csplit 敕令可以将单个文件瓜分成多个文件。Carla Schroder 解释说。
Linux 有几个用于瓜分文件的对象法度榜样。那么你为什么要瓜分文件呢?一个用例是将大年夜文件瓜分成更小的尺寸,以便它实用于比较小的存储介质,比如 U 盘。当您碰到 FAT32(最大年夜文件大年夜小为 4GB),且您的文件大年夜于此时,经由过程 U 盘传输文件也是一个很好的技能。另一个用例是加快收集文件传输,因为小文件的并行传输平日更快。
将瓜分后的文件归并
我们将进修若何应用 csplit,split 和 cat 来从新整顿文件,然后再将文件归并在一路。这些操作在任何文件类型下都有效:文本、图片、音频文件、ISO 镜像文件等。
应用 csplit 瓜分文件
csplit 是这些有趣的小敕令中的一个,它永远伴你阁下,一旦开端用它就离不开了。csplit 将单个文件瓜分成多个文件。这个示例演示了最简单的应用办法,它将文件 foo.txt 分为三个文件,以行号 17 和 33 作为瓜分点:
- $ csplit foo.txt 17 33
- 2591
- 3889
- 2359
csplit 在当前目次下创建了三个新文件,并以字节为单位打印出新文件的大年夜小。默认情况下,每个新文件名为 xx_nn:
- $ ls
- xx00
- xx01
- xx02
您可以应用 head 敕令查看每个新文件的前十行:
- $ head xx*
- ==> xx00 <==
- Foo File
- by Carla Schroder
- Foo text
- Foo subheading
- More foo text
- ==> xx01 <==
- Foo text
- Foo subheading
- More foo text
- ==> xx02 <==
- Foo text
- Foo subheading
- More foo text
如不雅要将文件瓜分成包含雷同业数的多个文件怎么办?可以指定行数,然后将反复次数放在在花括号中。此示例反复瓜分 4 次,并将剩下的转储到最后一个文件中:
您可以应用星号通配符来告诉 csplit 尽可能多地反复瓜分。这听起来很酷,然则如不雅文件不克不及等分,则可能会掉败(LCTT 译注:低版本的 csplit 不支撑此参数):
- $ csplit foo.txt 10 {*}
- 1545
- 2115
- 1848
- 1901
- csplit: '10': line number out of range on repetition 4
- 1430
默认的行动是删除产生缺点时的输出文件。你可以用 -k 选项来解决这个问题,当出缺点时,它就不会删除输出文件。另一个行动是每次运行 csplit 时,它将覆盖之前创建的文件,所以你须要应用新的文件名来分别保存它们。应用 --prefix= _prefix_ 来设置一个不呵9依υ?件前缀:
- $ csplit -k --prefix=mine foo.txt 5 {*}
- 57
- 1488
- 249
- 1866
- 993
- csplit: '5': line number out of range on repetition 9
- 437
- $ ls
- mine00
- mine01
- mine02
- mine03
- mine04
- mine05
选项 -n 可用于改变对文件进行编号的数字位数(默认是 2 位):
- $ csplit -n 3 --prefix=mine foo.txt 5 {4}
- 57
推荐阅读
在近日于呼和浩特举办的第十七届中国收集媒体论坛中,AI 再一次成为主角。如不雅推敲到 AI 在消息编辑、消息线索搜查、消息事实确认等方面的大年夜量应用,再推敲到个性化推荐消息客户端>>>详细阅读
本文标题:在Linux中分割和重组文件
地址:http://www.17bianji.com/lsqh/37021.html
1/2 1