Shell脚本分割文件成相同行数的文件


使用shell脚本将testfile.txt文件(共7800行)分割成13个文件,每个文件600行,文件名的前缀是SplitFile

[root@www.bkjia.com /home/sysadmin/zhaoyj]# cat testfile.txt  |wc -l
    7800

脚本如下:

[root@www.bkjia.com /home/sysadmin/zhaoyj]# cat split.sh

#!/bin/sh
linenum=`wc -l testfile.txt |awk '{print $1}'`
Num1=1
FileNum=1
while [ $Num1 -lt $linenum ]
do
                Num2=`expr   $Num1   +   599`
                sed   -n   "${Num1},   ${Num2}p "   testfile.txt   >   SplitFile$FileNum 
                Num1=`expr   $Num2   +   1`
                FileNum=`expr   $FileNum   +   1`

done  

最后生成的文件是

[root@www.bkjia.com /home/sysadmin/zhaoyj]# ls |grep '^SplitFile' |wc -l
      13

[root@www.bkjia.com /home/sysadmin/zhaoyj]# ls |grep '^SplitFile'      

SplitFile1
SplitFile10
SplitFile11
SplitFile12
SplitFile13
SplitFile2
SplitFile3
SplitFile4
SplitFile5
SplitFile6
SplitFile7
SplitFile8
SplitFile9

最后再核实一下每个文件的大小是否一致

[root@www.bkjia.com /home/sysadmin/zhaoyj]# ls |grep '^SplitFile' |xargs wc -l
     600 SplitFile1
     600 SplitFile10
     600 SplitFile11
     600 SplitFile12
     600 SplitFile13
     600 SplitFile2
     600 SplitFile3
     600 SplitFile4
     600 SplitFile5
     600 SplitFile6
     600 SplitFile7
     600 SplitFile8
     600 SplitFile9
    7800 total

相关内容