关于用Shell进行文件切割

关于用Shell进行文件切割

各位好,请问在linux bash下
如何使用shell对指定文件进行切割呢?
比如存在大文件access.log
文件行数100,000
需要对其进行切割,每10,000行,生成一个文件
得到类似
access.log.1
access.log.2
access.log.3
:
:
access.log.10
这10个文件,每个文件10,000行

thanks in advance      
用 split 或者 sed      
#!/bin/bash
for(( a = 0 ; a < 10 ; a++ ))
{
head -n 10000 access.log >access.log.$a
}      
这样岂不每次都把前 10000 行写入 access.log.XX 中了?      
这是我以前写过的一个脚本,试试看,我感觉有BUG ;)
复制内容到剪贴板
代码:
#!/bin/ksh
#
(($#!=1))&&{ echo "Usage:$(basename $0) filename";exit; }
if [[ ! -f $1 ]]
        then echo "$1 doesn't exits";exit
fi
a=1;n=1;m=10;line=$(cat $1|wc -l)
echo $line
while ((m<$line))
do
        cat $1|sed -n ${n},${m}p>>h.$a
        ((m+=10));((n+=10));((a+=1))
done
echo "Created file:\n$(ls h.*)"
exit
      
[QUOTE]最初由 dearvoid 发布
[B]这样岂不每次都把前 10000 行写入 access.log.XX 中了? [/B][/QUOTE]


惭愧!弄错了。再想想。      
看看这行不?
#!/bin/bash
for(( a = 1 ; a <= 10 ; a++ )) {
head -n $((10000*a)) access.log |tail -n 10000 >access.log.$a
}      
差不多了      
谢谢各位
需求已经完成,脚本如下:
fname="/home/laoya/test/data/finish.20031121"
fline=`cat $fname | wc -l`
count=`expr $fline / 10`
split -l $count $fname.0

真实丢人呀,居然不知道split这个好动动 -_-

另外,我希望结识同样喜欢linux的朋友(对于linux,我还是个菜鸟)
MSN:   kefei@hotmail.com      
到这儿来的都是 linux 爱好者,也欢迎你常来