Rubyでどう書く?:連続した数列を範囲形式にまとめたい.いや,Rubyで書かない.

Wed Nov 27 12:43:56 JST 2013 (modified: Fri Sep 29 21:38:45 JST 2017)
views: 1375, keywords:ワンライナー,プログラミング,楽しいお昼休み,シェル芸 この記事は最終更新日が7年以上前のものです。

http://builder.japan.zdnet.com/script/sp_ruby-doukaku-panel/20369264/から.

shでの回答もあったので,どうせならもっと強力なワンライナーで.

環境はMac.たぶんもうちょっと短くなる.

$ echo 1 2 3 5 7 8 | tr ' ' '\\n' |\\
   awk '{if(a==$1-1){printf(" %d",$1)}else{printf("\\n%d",$1)}a=$1}' |\\
   awk 'NF>1{print $1"-"$NF}NF<=1{print $1}' | tr '\\n' ',' | gsed 's/,$/\\n/g'
   1-3,5,7-8

gsedはLinuxだとsedでやります.

仕事仕事.

ノート   このエントリーをはてなブックマークに追加 
 

prev:/dev/randomを利用してHaskellでタネの要らない乱数を作って使う方法考えたがどうだろう? next:Structure and Interpretation of Computer Programs読書会8,9,10回目メモ書き

やり散らかし一覧

記事いろいろ