Linux系統下,有些txt文件比較大,轉移到移動設備非常不方便,那麼能不能將txt大文件變成多個小文件呢?其實可通過shell腳本實現,下面小編就給大家介紹下Linux通過shell腳本切割txt大文件的方法。
解決方法:
1. 先使用split命令切割大文件,每個小文件保存100萬行
split 參數:
-b :後面可接欲分割成的檔案大小,可加單位,例如 b, k, m 等;
-l :以行數來進行分割;
#按每個文件1000行來分割除
split -l 1000 httperr8007.log httperr
httpaa,httpab,httpac 。。。。。。。。
#按照每個文件100K來分割
split -b 100k httperr8007.log http
httpaa,httpab,httpac 。。。。。。。。
2. 遍歷所有100萬行文件,逐個新建目錄再切割成1萬行小文件
#!/bin/bash
bigfile=“1.txt”
split -l 1000000 $bigfile text
currdir=1
for smallfile in `ls | grep “text*”`
do
linenum=`wc -l $smallfile | awk ‘{print $1}’`
n1=1
file=1
savedir=“$smallfile$currdir”
if [ ! -d “$savedir” ]
then
mkdir $savedir
fi
while [ $n1 -lt $linenum ]
do
n2=`expr $n1 + 9999`
sed -n “${n1},${n2}p” $smallfile 》 $savedir/text$file.txt
n1=`expr $n2 + 1`
file=`expr $file + 1`
done
currdir=`expr $currdir + 1`
done
上面就是Linux使用shell腳本將txt大文件切割成小文件的方法介紹了,txt文件太大的話可使用本文的方法進行切割處理。