linux 中split命令實現按行拆分文件


1、測試數據

root@PC1:/home/test# ls
test.map
root@PC1:/home/test# cat test.map 01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384

 

2、split -l 或者 split -實現按行拆分文件

實現按每10行拆分test.map。

root@PC1:/home/test# ls
test.map
root@PC1:/home/test# cat test.map
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384
root@PC1:/home/test# split -l 10 test.map ## 按照每10行拆分文件
root@PC1:/home/test# ls    ## 默認生成的文件是以xaa、xab依次遞增的形式命名
test.map  xaa xab
root@PC1:/home/test# cat xaa  ##查看生成文件
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
root@PC1:/home/test# cat xab
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384

 

split - 等價於split -l:

root@PC1:/home/test# ls
test.map
root@PC1:/home/test# cat test.map
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384
root@PC1:/home/test# split -10 test.map ## 按照每10行拆分文件
root@PC1:/home/test# ls
test.map  xaa  xab
root@PC1:/home/test# cat xaa
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
root@PC1:/home/test# cat xab
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384

 

3、按照每五行拆分文件

root@PC1:/home/test# ls
test.map
root@PC1:/home/test# cat test.map
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384
root@PC1:/home/test# split -l 5 test.map ## 按照每5行拆分測試文件
root@PC1:/home/test# ls
test.map  xaa  xab  xac  xad
root@PC1:/home/test# cat xaa
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
root@PC1:/home/test# cat xab
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
root@PC1:/home/test# cat xac
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
root@PC1:/home/test# cat xad
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384

 

4、指定生成文件的前綴

root@PC1:/home/test# ls
test.map
root@PC1:/home/test# cat test.map
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384
root@PC1:/home/test# split -l 10 test.map sub ## 指定生成的文件的前綴是sub
root@PC1:/home/test# ls
subaa subab  test.map
root@PC1:/home/test# cat subaa
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
root@PC1:/home/test# cat subab
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384

 

root@PC1:/home/test# ls
test.map
root@PC1:/home/test# cat test.map
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384
root@PC1:/home/test# split -l 8 test.map prefix ## 指定前綴為prefix
root@PC1:/home/test# ls
prefixaa prefixab prefixac  test.map
root@PC1:/home/test# cat prefixaa
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
root@PC1:/home/test# cat prefixab
09      SNP09   578716
10      SNP10   639876
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
root@PC1:/home/test# cat prefixac
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384

 

5、-d參數指定后綴按照數字遞增

root@PC1:/home/test# ls
test.map
root@PC1:/home/test# cat test.map
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384
root@PC1:/home/test# split -l 5 -d test.map sub_ ## 按每5行拆分文件, 前綴為sub_, -d參數指定后綴按照數字遞增
root@PC1:/home/test# ls
sub_00  sub_01  sub_02  sub_03  test.map
root@PC1:/home/test# cat sub_00
01      SNP01   55910
02      SNP02   85204
03      SNP03   122948
04      SNP04   203750
05      SNP05   312707
root@PC1:/home/test# cat sub_01
06      SNP06   356863
07      SNP07   400518
08      SNP08   487423
09      SNP09   578716
10      SNP10   639876
root@PC1:/home/test# cat sub_02
11      SNP11   739050
12      SNP12   775181
13      SNP13   782445
14      SNP14   902647
15      SNP15   988021
root@PC1:/home/test# cat sub_03
16      SNP16   1146615
17      SNP17   1184243
18      SNP18   1235261
19      SNP19   1385609
20      SNP20   1401384

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM