派閥ジェネレーター
こういうのは作っておいて損がないですね。
#! /usr/bin/gawk -f # habatsu.awk - generate HABATSU (faction) ascii art # usage: gawk -f habatsu.awk habatsu.txt # input: habatsu.txt (file indented by '-') # output: HABATSU (faction) ascii art $0 != "" { depth[NR] = gsub(/\-/, ":", $1); line[NR] = $0; } END { space = " "; spaces = " "; for (i = NR; i >= 2; i--) { match(line[i], /:*/); space = substr(space spaces, 1, (RLENGTH - 1) * 4); line[i] = space " +- " substr(line[i], RLENGTH + 1); space = space " |"; } for (i = 1; i <= NR; i++) { if (line[i] != " +- " && depth[i] != 0) { print line[i]; } else if (depth[i] == 0) { sub(/ \+\- /, "", line[i]); print line[i]; } } }
ちょっと雑なところもありますが許してください。
$ cat habatsu.txt 感電しないよ派 - やる気と根性だよ派 -- 山にかわいい7つの子があるからよ派(王道派) -- 感電してるけど平気なふりしてるよ派(中立派) -- 電気の周波に合わせて足を高速で動かしてるよ派 - ゴムだからだよ派 -- カラスはゴムをはいてるよ派 -- カラスはゴムだよ派 -- 電気はゴムだよ派 - カラスは存在しないよ派 感電してるよ派 - 楽しんでるよ派 -- 接触面積が広いから大丈夫だよ派 - 鳩が感電したのがカラスだよ派 - 感電してるのは電気の方だよ派 $ gawk -f habatsu.awk habatsu.txt 感電しないよ派 +- やる気と根性だよ派 | +- 山にかわいい7つの子があるからよ派(王道派) | +- 感電してるけど平気なふりしてるよ派(中立派) | +- 電気の周波に合わせて足を高速で動かしてるよ派 +- ゴムだからだよ派 | +- カラスはゴムをはいてるよ派 | +- カラスはゴムだよ派 | +- 電気はゴムだよ派 +- カラスは存在しないよ派 感電してるよ派 +- 楽しんでるよ派 | +- 接触面積が広いから大丈夫だよ派 +- 鳩が感電したのがカラスだよ派 +- 感電してるのは電気の方だよ派
こんな感じでしょうか。