一、split命令簡介
Split命令是Linux系統下的一個命令行工具,用於將一個大文件分割成若干個小文件。
Split命令的基本語法為:
split [OPTION] [INPUT [PREFIX]]
其中,OPTION為選項參數,可以使用的選項參數有:
- -a, –suffix-length=N:在分割後的文件名末尾增加長度為N的後綴
- -b, –bytes=SIZE:指定每個生成的文件大小為SIZE位元組
- -l, –lines=NUMBER:指定每個生成的文件包含NUMBER行
- -d, –numeric-suffixes:使用數字後綴代替字母后綴
- –verbose:顯示分割過程
二、按位元組數分割文件
要將一個大文件按指定的位元組數分割成若干個小文件,可以使用split命令的-b參數。
例如,要將一個文件test.txt按每個文件限制為1000個位元組進行分割:
split -b 1000 test.txt test_part
上述命令將生成以test_part為文件名前綴的多個小文件,每個文件大小為1000位元組。
三、按行數分割文件
要將一個大文件按指定的行數分割成若干個小文件,可以使用split命令的-l參數。
例如,要將一個文件test.txt按每個文件限制為10行進行分割:
split -l 10 test.txt test_part
上述命令將生成以test_part為文件名前綴的多個小文件,每個文件包含10行。
四、按文件大小分割文件
如果想要將一個大文件分割成若干個指定大小的小文件,可以結合-b參數和循環語句來實現。
例如,要將一個文件test.txt分割成大小為1MB的多個小文件,可以使用以下命令:
filesize=$(wc -c < test.txt)
chunksize=$((1024*1024))
for start in $(seq 1 $chunksize $filesize)
do
end=$((start + chunksize - 1))
split -b $chunksize -d --suffix-length=4 test.txt test_part_$(printf "%04d" $((start / chunksize + 1)))
done
上述命令中先使用wc命令獲取文件的總大小,然後使用循環語句依次截取文件的每個1MB大小的塊並生成小文件,使用printf命令為小文件名添加數字後綴,保證小文件名按數字順序排列。
五、按文件後綴名分割文件
如果要將一個文件按照後綴名進行分割,可以結合xargs和basename命令來實現。
例如,要將一個文件夾中的所有以.jpg後綴名的圖片文件按每個文件限制為10個進行分割,可以使用以下命令:
ls *.jpg | xargs -n 10 | while read line; do split -d -l 10 --suffix-length=4 - "${line}"_part_; done
上述命令中先使用ls命令獲取所有以.jpg後綴名的文件,然後使用xargs將多個文件名作為參數傳遞給while循環,每次讀取10個文件名,使用split命令將這10個文件按照行數10進行分割,並添加_part_後綴,生成多個小文件。
六、結語
Split命令是一個非常實用的Linux命令,在處理大文件時非常有用。通過掌握split命令的使用方法,可以極大地提高工作效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159322.html