shell指令碼分割檔案成相同行數的檔案

2021-08-26 02:03:35 字數 1460 閱讀 8465

使用shell指令碼將testfile.txt檔案(共7800行)分割成13個檔案,每個檔案600行,檔名的字首是splitfile

[root@mx1 /home/sysadmin/zhaoyj]#cat testfile.txt |wc -l

7800

指令碼如下:

[root@mx1 /home/sysadmin/zhaoyj]# cat split.sh

#!/bin/sh

linenum=`wc -l testfile.txt |awk ''`

num1=1

filenum=1

while [ $num1 -lt $linenum ]

donum2=`expr $num1 + 599`

sed -n "$, $p " testfile.txt > splitfile$filenum

num1=`expr $num2 + 1`

filenum=`expr $filenum + 1`

done

最後生成的檔案是

[root@mx1 /home/sysadmin/zhaoyj]#ls |grep '^splitfile' |wc -l

13

[root@mx1 /home/sysadmin/zhaoyj]#ls |grep '^splitfile'

splitfile1

splitfile10

splitfile11

splitfile12

splitfile13

splitfile2

splitfile3

splitfile4

splitfile5

splitfile6

splitfile7

splitfile8

splitfile9

最後再核實一下每個檔案的大小是否一致

[root@mx1 /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

Shell指令碼分割字串

以字元進行切割時 從字串左邊開始計數 如果想從字串的左邊開始計數,那麼擷取字串的具體格式如下 其中,string 是要擷取的字串,start 是起始位置 從左邊開始,從 0 開始計數 length 是要擷取的長度 省略的話表示直到字串的末尾 url c.biancheng.net echo 結果為b...

比較2個檔案內容不同行的shell指令碼

第一種 grep命令法 命令如下 grep vxff file1 file2 a.txt 其中file2是大檔案,file1是小檔案 第一種 comm命令法 命令如下 comm file1 file2 1 3 file1和file2必須是有序檔案,所以在comm前可以先sort file1 sort...

利用shell指令碼對大檔案進行分割

有系統運維的過程中,日誌檔案往往非常大,這樣就要求對日誌檔案進行分割,在此特用shell指令碼對檔案進行分割 方法一 其中httperr8007.log為你想分割的大檔案,file file.log 為分割後的檔案,最後為file 1.log,file 2.log,file 3.log 分割完後的每...