linux切割文件,linux 文件字符集转换命令

其实linux切割文件的问题并不复杂,但是又很多的朋友都不太了解linux 文件字符集转换命令,因此呢,今天小编就来为大家分享linux切割文件的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

Linux命令之文件切割命令split使用介绍

位置:/usr/bin/split

权限:所有用户

作用:

用法: split [OPTION]... [INPUT [PREFIX]]

选项:

-b后面可以接可以切割成文件的大小,可以加单位,例如:b,k, m

-l以行数来进行分割

PREFIX:前导符,可作为切割文件的前导文字

这里col1就是前导符,生成了3个文件col1aa、col1ab、col1ac

复制代码代码如下:

$ split-b 1k col col1

$ ls-hl

总用量 80K

-rw-rw-r-- 1 cwjy1202 cwjy1202 54一月 8 00:11 a

-rw-rw-r-- 1 cwjy1202 cwjy1202 39一月 11 12:58 b

-rw-rw-r-- 1 cwjy1202 cwjy1202 54一月 8 22:09 c

-rw-rw-r-- 1 cwjy1202 cwjy1202 3.0K一月 11 18:50 col

-rw-rw-r-- 1 cwjy1202 cwjy1202 1.0K一月 12 00:09 col1aa

-rw-rw-r-- 1 cwjy1202 cwjy1202 1.0K一月 12 00:09 col1ab

-rw-rw-r-- 1 cwjy1202 cwjy1202 1006一月 12 00:09 col1ac

-rw-rw-r-- 1 cwjy1202 cwjy1202 3.0K一月 11 18:45 col.list

-rw-rw-r-- 1 cwjy1202 cwjy1202 75十二 27 22:09 mudi

drwxr-xr-x 2 cwjy1202 cwjy1202 4.0K十二 29 23:47 myDir

-rwxr-xr-x 1 cwjy1202 cwjy1202 15K十二 28 23:20 nginx

-rw-rw-r-- 1 cwjy1202 cwjy1202 16K十二 27 20:16 nginxlog

-rw------- 1 cwjy1202 cwjy1202 1004八月 29 17:24 R语言做流程图.R

-rw-rw-r-- 1 cwjy1202 cwjy1202 33一月 3 16:13 test.bc

把文件col以行数作为分隔,生成文件的前导符为col,分成了三个文件colaa、colab、colac和colad

复制代码代码如下:

$ split-l 20 col col

$ ls-hl

总用量 84K

-rw-rw-r-- 1 cwjy1202 cwjy1202 54一月 8 00:11 a

-rw-rw-r-- 1 cwjy1202 cwjy1202 39一月 11 12:58 b

-rw-rw-r-- 1 cwjy1202 cwjy1202 54一月 8 22:09 c

-rw-rw-r-- 1 cwjy1202 cwjy1202 3.0K一月 11 18:50 col

-rw-rw-r-- 1 cwjy1202 cwjy1202 921一月 12 00:13 colaa

-rw-rw-r-- 1 cwjy1202 cwjy1202 1021一月 12 00:13 colab

-rw-rw-r-- 1 cwjy1202 cwjy1202 807一月 12 00:13 colac

-rw-rw-r-- 1 cwjy1202 cwjy1202 305一月 12 00:13 colad

-rw-rw-r-- 1 cwjy1202 cwjy1202 3.0K一月 11 18:45 col.list

-rw-rw-r-- 1 cwjy1202 cwjy1202 75十二 27 22:09 mudi

drwxr-xr-x 2 cwjy1202 cwjy1202 4.0K十二 29 23:47 myDir

-rwxr-xr-x 1 cwjy1202 cwjy1202 15K十二 28 23:20 nginx

-rw-rw-r-- 1 cwjy1202 cwjy1202 16K十二 27 20:16 nginxlog

-rw------- 1 cwjy1202 cwjy1202 1004八月 29 17:24 R语言做流程图.R

-rw-rw-r-- 1 cwjy1202 cwjy1202 33一月 3 16:13 test.bc

特殊例子:如何把下面的信息以5行分隔成多个文件

复制代码代码如下:

$ ls-al

总用量 92

drwxrwxr-x 3 cwjy1202 cwjy1202 4096一月 12 00:19.

drwxrwxr-x 21 cwjy1202 cwjy1202 4096十二 27 21:23..

-rw-rw-r-- 1 cwjy1202 cwjy1202 54一月 8 00:11 a

-rw-rw-r-- 1 cwjy1202 cwjy1202 39一月 11 12:58 b

-rw-rw-r-- 1 cwjy1202 cwjy1202 54一月 8 22:09 c

-rw-rw-r-- 1 cwjy1202 cwjy1202 3054一月 11 18:50 col

-rw-rw-r-- 1 cwjy1202 cwjy1202 921一月 12 00:13 colaa

-rw-rw-r-- 1 cwjy1202 cwjy1202 1021一月 12 00:13 colab

-rw-rw-r-- 1 cwjy1202 cwjy1202 807一月 12 00:13 colac

-rw-rw-r-- 1 cwjy1202 cwjy1202 305一月 12 00:13 colad

-rw-rw-r-- 1 cwjy1202 cwjy1202 3054一月 11 18:45 col.list

-rw-rw-r-- 1 cwjy1202 cwjy1202 75十二 27 22:09 mudi

drwxr-xr-x 2 cwjy1202 cwjy1202 4096十二 29 23:47 myDir

-rwxr-xr-x 1 cwjy1202 cwjy1202 14698十二 28 23:20 nginx

-rw-rw-r-- 1 cwjy1202 cwjy1202 16298十二 27 20:16 nginxlog

-rw------- 1 cwjy1202 cwjy1202 1004八月 29 17:24 R语言做流程图.R

-rw-rw-r-- 1 cwjy1202 cwjy1202 33一月 3 16:13 test.bc

如下:split-l 5后面的-,那个-表示需要stdout或者stdin

另外,lsal表示生成文件的名字前导符,生成的名字叫:lsalaa、lsalab、lsalac、lsalad

复制代码代码如下:

$ ls-la| split-l 5- lsal

$ ls-al

总用量 108

drwxrwxr-x 3 cwjy1202 cwjy1202 4096一月 12 00:21.

drwxrwxr-x 21 cwjy1202 cwjy1202 4096十二 27 21:23..

-rw-rw-r-- 1 cwjy1202 cwjy1202 54一月 8 00:11 a

-rw-rw-r-- 1 cwjy1202 cwjy1202 39一月 11 12:58 b

-rw-rw-r-- 1 cwjy1202 cwjy1202 54一月 8 22:09 c

-rw-rw-r-- 1 cwjy1202 cwjy1202 3054一月 11 18:50 col

-rw-rw-r-- 1 cwjy1202 cwjy1202 921一月 12 00:13 colaa

-rw-rw-r-- 1 cwjy1202 cwjy1202 1021一月 12 00:13 colab

-rw-rw-r-- 1 cwjy1202 cwjy1202 807一月 12 00:13 colac

-rw-rw-r-- 1 cwjy1202 cwjy1202 305一月 12 00:13 colad

-rw-rw-r-- 1 cwjy1202 cwjy1202 3054一月 11 18:45 col.list

-rw-rw-r-- 1 cwjy1202 cwjy1202 238一月 12 00:21 lsalaa

-rw-rw-r-- 1 cwjy1202 cwjy1202 294一月 12 00:21 lsalab

-rw-rw-r-- 1 cwjy1202 cwjy1202 302一月 12 00:21 lsalac

-rw-rw-r-- 1 cwjy1202 cwjy1202 201一月 12 00:21 lsalad

-rw-rw-r-- 1 cwjy1202 cwjy1202 75十二 27 22:09 mudi

drwxr-xr-x 2 cwjy1202 cwjy1202 4096十二 29 23:47 myDir

-rwxr-xr-x 1 cwjy1202 cwjy1202 14698十二 28 23:20 nginx

-rw-rw-r-- 1 cwjy1202 cwjy1202 16298十二 27 20:16 nginxlog

-rw------- 1 cwjy1202 cwjy1202 1004八月 29 17:24 R语言做流程图.R

-rw-rw-r-- 1 cwjy1202 cwjy1202 33一月 3 16:13 test.bc复制代码代码如下:

$ wc-l lsal*

5 lsalaa

5 lsalab

5 lsalac

3 lsalad

18总用量

Linux下如何切割与合并大文件

在Linux系统下,当需要传输大文件时,我们可以通过切割文件为多个小文件来进行更高效和灵活的传输。这样做有两大优势:首先,如果在传输过程中网络出现中断,我们只需重新传输失败的小文件,而无需重新传输整个大文件,这样可以节省大量的时间和带宽资源。其次,小文件的并行传输可以显著提高整体传输速度。

切割文件的命令是`split`,其基本语法如下:

INPUT表示标准输入或者文件,PREFIX表示大文件分割后产生的小文件名字的前缀,默认为小写字母"x",后跟一组字符,按照类似"aa"、"ab"、"ac"的字母顺序组成一个一个的文件名。例如,将大文件切割成三个部分,文件名将会是"xaa"、"xab"、"xac"。而OPTION参数则允许我们根据不同的需求进行文件的切割,如按字节切割或按行切割。

下面,我们通过几个实例来具体演示如何使用split命令:

假设我们创建了一个大小为10M的文件。使用`split`命令将其切割为5个大小为2M的小文件。从结果中可以看到,原始文件的大小为10M,命令选项"-b 2M"表示每个输出文件大小为2M,总共切割成5个文件,文件名依次为"xaa"、"xab"、"xac"、"xad"、"xae"。

如果我们要处理的是一个大小为10K的文件,且文件的每一行内容都是"this is a test file"。使用`split`命令将这个文件切割为每个文件100行,并且新生成的文件前缀为"split_file_"。执行后,可以得知,总共512行的文件被分成了6个文件,文件名分别是"split_file_aa"、"split_file_ab"、"split_file_ac"、"split_file_ad"、"split_file_ae"、"split_file_af",其中前5个文件每份100行,最后一个文件仅有剩下的12行。

在切割小文件时,`split`命令还提供了其他选项,比如`-n`选项可以控制生成的小文件数量。使用`fallocate`创建一个5M大小的文件,然后使用`split`命令将其切割成5个文件,每个文件大小为1M。在这个实例中,切割后生成的5个文件分别为"x00"、"x01"、"x02"、"x03"、"x04"。

需要注意的是,在按照文件数量切割小文件时,如果原始文件的大小不足以分成指定数量的小文件,例如一个5字节的文件要切割成8个文件,此时只能生成5个文件,剩余的3个文件大小只能是0字节。通过`-e`选项可以禁止生成0字节大小的文件,从而避免生成无意义的空文件。

在完成了文件的切割后,我们需要将这些小文件传输至远程机器,并且合并成一个完整的文件。然后,通过计算原始文件和合并后文件的MD5值来验证传输是否成功。如果两者MD5值相同,表示传输过程成功;反之,则传输失败。

最后,通过实际操作和实例演示,我们可以看到,使用`split`命令进行文件切割不仅能够提高传输效率,还能够有效应对网络不稳定或中断的情况。在实际应用中,合理利用文件切割和传输策略,能够显著提升数据传输的可靠性与效率。

Linux系统下切割文件的split命令用法教程

你曾经是否想要把一个大文件分割成多个小文件?比如一个5gb日志文件,我们需要把它分成多个小文件,这样我们才有可能使用普通的文本编辑器读取它。有时我们需要传输20gb的大文件到另一台服务器,这就需要我们把它分割成多个文件,这样便于传输数据。下面我们来讲解使用split命令来切割文件的方法。

复制代码代码如下:

[root@localhost database]# ls-lh gkdb.db

-r--r--r-- 1 root root 411M Jul 23 17:20 gkdb.db

将将这个276M文件分割成20M的小文件,文件分割操作如下:

复制代码代码如下:

[root@localhost database]# split-b 20m gkdb.db gkdb_pack_

split是命今。

-B 20M是指将每个分卷文件最大20M。

gkdb.db需要分割的文件。

gkdb_pack_是指分割后的文件开头,分割后后的文件名一般为 gkdb_pack_aa、gkdb_pack_ab、gkdb_pack_ac依次类推。

显示分割后的文件名及大小

复制代码代码如下:

[root@localhost database]# ll-lh gkdb_pack_a*

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_aa

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ab

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ac

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ad

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ae

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_af

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ag

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ah

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ai

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_aj

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ak

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_al

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_am

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_an

-rw-r--r-- 1 root root 20M Jul 27 16:09 gkdb_pack_ao

-rw-r--r-- 1 root root 20M Jul 27 16:10 gkdb_pack_ap

-rw-r--r-- 1 root root 20M Jul 27 16:10 gkdb_pack_aq

-rw-r--r-- 1 root root 20M Jul 27 16:10 gkdb_pack_ar

-rw-r--r-- 1 root root 20M Jul 27 16:10 gkdb_pack_as

-rw-r--r-- 1 root root 20M Jul 27 16:10 gkdb_pack_at

-rw-r--r-- 1 root root 11M Jul 27 16:10 gkdb_pack_au

最下面的那个文件是剩余的文件。 20*20+11=411MB

合并文件

复制代码代码如下:

[root@localhost database]# cat gkdb_pack_*>gkdb.tar.gz

组装前和组装后的MD5值都是一样的,不信的话可以使用md5sum命令来检测一下。

如果要分割的是一个文本文件,比如有好几千行,当然每行的字符数是不等的,想要以行数为分割,比如每100行生成1个文件,只需要-l参数,如下:

复制代码代码如下:

[root@pps public_rw]# split-l 100 test.txt

其实,如果不加任何参数,默认情况下是以1000行大小来分割的。

实例1、以每个文件1000行分割

split命令分割文件成每个文件1000行,并且文件名依次为 [前缀]aa, [前缀]ab, [前缀]ac等,默认的前缀是X,每个文件的行数为1000行,命令如下:

复制代码代码如下:

$ split mylog

$ wc-l*

4450 mylog

1000 xaa

1000 xab

1000 xac

1000 xad

450 xae

实例2、以每个文件20MB分割

分割文件为多个20MB的文件,附带-b选项命令如下:

复制代码代码如下:

$ split-b 20M logdata

$ ls-lh| tail-n+2

-rw------- 1 sathiya sathiya 102M Jul 25 18:47 logdata

-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xaa

-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xab

-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xac

-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xad

-rw------- 1 sathiya sathiya 20M Jul 25 19:20 xae

-rw------- 1 sathiya sathiya 1.6M Jul 25 19:20 xaf

实例3、以每个文件50MB指定前缀分割

使用–bytes选项把文件分割成多个50MB的文件,–bytes类似-b选项,在第二个参数指定前缀。

复制代码代码如下:

$ split--bytes=50M logdata mydatafile

$ ls-lh

total 204M

-rw------- 1 sathiya sathiya 102M Jul 25 18:47 logdata

-rw------- 1 sathiya sathiya 50M Jul 25 19:23 mydatafileaa

-rw------- 1 sathiya sathiya 50M Jul 25 19:23 mydatafileab

-rw------- 1 sathiya sathiya 1.6M Jul 25 19:23 mydatafileac

实例4、基于行数分割文件

使用-l选项指定行数来把文件分割成多个行数相同的文件。

复制代码代码如下:

$ wc-l testfile

2591 testfile

$ split-l 1500 testfile importantlog

$ wc-l*

1500 importantlogaa

1091 importantlogab

2591 testfile

实例5、以数字后缀命名分割文件

使用-d选项可以指定后缀为数字,如00,01,02..,而不是aa,ab,ac。

复制代码代码如下:

$ split-d testfile

$ ls

testfile x00 x01 x02

阅读剩余
THE END