実践 キングウンコの作り方


アドベントカレンダーできてたので、せっかくだからなんか書いてみる。

そもそもキングウンコってなに?

こいつ。
主にシェル芸botに生息しているよ!
キングとついてるだけあって、そこらのウンコとはわけが違うよ!!

最近は、世界でもっともクリーンなOSSとして名高いsuper_unkoリポジトリのunko.shoutとかunko.kingなるコマンドによって生成されてるけど、当初はsedとかを駆使して生み出してた。
もともとはunko.towerというコマンドの出力を利用していたよ!

作ってみよう!

一般的なコマンドで作る

もともとのベースにしているunko.towerの元になったシェル芸を参考に生成してみる。
ちょっと長い。

(
  x=5; \
  eval echo {${x}..1} | \
    fmt -1 | \
    perl -snle '$l=" "x$_;$m="💩"x($n-$_);print $l."($m💩$m)"' -- -n=${x} \
) | \
    sed -e"s/(💩)/ 👑/" -e'3s/💩/👁/'{2,3} -e'4s/💩/👃/4' -e'5s/💩/👄/5'
参考

unko.towerを用いる場合

最初にこさえたときの方法。
unko.towerでは当初-m(文字列をうんこの中に入れる)-s(文字列をウンコの中に入れる(繰り返し))オプションがなかったので、sedでウンコの中の全角スペースを置換する処理をしていたよ。

unko.tower 4 | \
 sed -r ':a;s/(( *) /\1💩/;ta' | \
 sed -e'3s/💩/👁/'{2,3} -e'4s/💩/👃/4' -e'5s/💩/👄/5' -e'1s/人/👑/'

あとから追加された-sオプションを使うと2行目の処理が不要になる。

unko.tower -s 💩 4 | sed -e'3s/💩/👁/'{2,3} -e'4s/💩/👃/4' -e'5s/💩/👄/5' -e'1s/人/👑/'