カビパン男と私

HOME/横書き縦書き

枝葉表示のためのシェルスクリプト

0 点から 100 点までがある試験の成績分布などは、枝葉表示をするとなかなか便利。このくらいはシェルスクリプトでやってしまないかと考えた。

たとえば 66, 72, 73, 75, 81 点の人がいたとすると、各サンプルのとる値の 2 桁目を枝として | の左側に書き、1 桁目を | の右側に並べることによって、ヒストグラムのように見せたい。

8|1
7|235
6|6

こうすれば、極めて簡単な文字だけのチャートによって、成績分布をグラフィカルに表現でき、同時に全員の成績の値を表現することができる。

#! /bin/sh
# stemleaf.sh
# 0 点から 100 点までの分布を枝葉表示する
## Example ##
# $ echo "72 57 73 42 88 86 79 54 91" | sh  stemleaf.sh
# 9|1
# 8|68
# 7|239
# 5|47
# 4|2
#
tr " " "\n" | 
sort -n  | 
sed -e 's/^100/a0/;/^$/d; s/^[0-9]$/0&/' | 
tr "\n" " "| 
sed -e ':a;s/\([0-9a]\)\([0-9][0-9]*\) \1\([0-9]\)/\1\2\3/;ta' |
tr " " "\n"| 
sed -e 's/^\([0-9a]\)/\1|/g; s/a/10/g; s/^\([0-9]\)|/ \1|/g' |
tac 

ま、それだけなんだけど。

@kabipanotoko