#!/bin/bash
FROM_FILE=$1
TO_FILE=$2
SLEEP_TIME=2
BATCH_NUM=1000
usage()
{
if [ $# -ne 2 ];then
echo "usage: `basename $0` [FROM_FILE] [TO_FILE]"
exit 1
fi
}
check_file()
{
if [ ! -f $1 ];then
echo "[ERROR] the $FROM_FILE is no good."
exit 2
fi
}
function main()
{
usage $@
check_file $FROM_FILE
if [ ! -f $TO_FILE ];then
echo "[ERROR] the $TO_FILE is needed to create"
exit 3
fi
count =0
while read line
do
echo $line >> $TO_FILE 【这里是每循环一次就写入一行数据到$TO_FILE里,而且while read line是处理一行就接着下一行】
count=$(($count+1))
#count=`echo $count + 1|bc`
#count=`expr $count + 1` 【统计标记值写入一行就增加1】
if [ $count -gt $BATCH_NUM ];then 【这里判断当标记数达到阈值时,就清空标记的值重新统计,并且睡眠2秒】
sleep $SLEEP_TIME
count=0
fi
done < $FROM_FILE 【while循环的结束是当$FROM_FILE被read line一条条处理完之后】
}
main $*
解释:
usage()函数是为了检验,脚本的参数个数是否为2个,即FROM_FILE和TO_FILE是否有输入;
check_file()函数是为了检验FORM_FILE是否在当前路径下存在;
function main()主函数main则是控制每写入1000行数据到TO_FILE后就睡眠2秒,接着在写入数据
思路:利用while read line 循环一行一行的写入新文件里,且对每写一行试就做一个标记;
判断标记的数值当达到预设的阈值就清零标记,重新再从0标记
shell从大文件写入另一个文件中控制每2秒写入1000行
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...