作者: Kaoru Kusunoki
日時: 2002/11/15(16:57)
> 1,2,3,5,7,8,10,12,14,15,16,17
> 
> の様なソート済番号のリストを,
> 
> 1-3,5,7-8,10,12,14-17

今日はくすのきです

試しに書いてみました。
あまりかっこ良くはないですが
エイヤーでかけば こんなじでしょうか
perl の比べてどうですか、「短い」スクリプトになっていますか?

>cat odai
1,2,3,5,7,8,10,12,14,15,16,17
>cat sort-hi.awk
BEGIN {
        FS = ","
}
{
        start = $1

        for (i = 2 ; i <= NF+1;i++){
                if ($i != $(i-1) + 1) {
                        if (start == $(i-1)){
                                numbers = numbers  start ","
                        } else {
                                numbers = numbers start "-" $(i-1) ","
                        }
                        start = $i

                }
        }
        #行の最後の , を消す かっこ良くないな。。。
        print substr(numbers,1,length(numbers)-1)
}

>awk -f sort-hi.awk odai
1-3,5,7-8,10,12,14-17

きちんと検証はしていませんのであしからず。
---------------- 
くすのき@かなざわ
http://www.heididorf.net
kusunoki@...-inet.or.jp