您的位置:首页 > 运维架构 > Shell

shell split文件分割方法

2017-01-13 11:32 453 查看
1.需求

       每天有一批数据(200m)的数据要写入redis,使用一个脚本进行读取文件、写入需要的时间太长了,优化方式是将大文件拆分成小文件,启动多个进程去写入redis,设定每个文件的行数是40000行。

2.脚本

     

scriptDate=$1
basePath="/home/data/"
dataFileName="click_$1.data"
baseFile="$basePath$dataFileName"
dataFile="/home/data/$dataFileName"
testFile="/home/script/InsertRedis.sh"
if [ -d "$basePath" ]; then
echo "exists"
fi
mkdir $basePath
cp $dataFile $basePath/
cd $basePath
j=0
split -40000 $dataFile data_
rm  $baseFile
for i in `ls -1`
do
echo "file is $i"
sh $testFile $basePath$i $scriptDate $i &
folder_list[j]=$i
j=`expr $j + 1`
done


3.调用方法

./split.sh 20161225
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  shell