shell 脚本。
在UNIX中,扫描一个大数据量的文件,当文件的数量到达1000条时,将重新产生一个新的文件,
要求产生的文件必须顺序产生?但每个文件的数据量最大为1000条记录。
产生的文件例如:10001.txt,10002.txt,10003.txt
[b]问题补充:[/b]
产生的文件格式例如 FILE当前时间_101_10001.txt,FILE当前时间_101_10002.txt,FILE当前时间_101_10003.txt
cat myfile | awk 'BEGIN{INDEX=10000;TIME=strftime("%Y%m%e%H%M%S",systime());} {if(NR%1000==0)INDEX=INDEX+1;print $0>"FILE"TIME"_101_"INDEX".txt";}'
多man下awk吧.
至于时间格式,%Y%m%e%H%M%S 搜索下
strftime函数使用C库中的strftime函数格式化时间。
用csplit或solit
split -l10000 sortbase.sh split_
然后再批量改名吧
或者
cat myfile | awk 'BEGIN{INDEX=10000} {if(NR%10==0)INDEX=INDEX+1;print $0>INDEX".txt";}'
cat myfile | awk 'BEGIN{INDEX=10000} {if(NR%1000==0)INDEX=INDEX+1;print $0>INDEX".txt";}'