- 论坛徽章:
- 5
|
本帖最后由 klainogn 于 2014-08-03 13:46 编辑
更大的菜鸟来了,代码肯定是不够简练,但应该比纯shell处理来的快点吧- BEGIN{
- total=20000
- }
- {
- for(;i++<total;){
- sept=","
- if(+$1==i){
- if(last_use+1==+$1) {u_cnt++;sept="-"}
- use=use?use sept $1"-"$1:$1"-"$1
- use=gensub(/([0-9]+-)[^,]*-([0-9]+)/,"\\1\\2", "g",use)
- if(use~/,/){
- print substr(use,0,11)","u_cnt >"use.txt"
- use=substr(use,13)
- u_cnt=1
- }
- last_use=$1
- next
- }else{
- if(last_nouse+1==i) {n_cnt++;sept="-"}
- sn=sprintf("%05d",i)
- nouse=nouse?nouse sept sn"-"sn:sn"-"sn
- nouse=gensub(/([0-9]+-)[^,]*-([0-9]+)/,"\\1\\2", "g",nouse)
- if(nouse~","){
- print substr(nouse,0,11),n_cnt >"nouse.txt"
- nouse=substr(nouse,13)
- n_cnt=1
- }
- last_nouse=sn
- continue
- }
- }
- }
- END{
- print use","u_cnt >"use.txt"
- print nouse","n_cnt >"nouse.txt"
-
- if(++i<total){
- print sprintf("%05d",i)"-"total","total-i >"nouse.txt"
- }
- }
复制代码 |
|