> 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