アドベントカレンダーできてたので、せっかくだからなんか書いてみる。
そもそもキングウンコってなに?
こいつ。
主にシェル芸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'
参考
seq 3 | tac | perl -snle '$l=" "x$_;$m=" "x($n-$_);print $l."($m $m)"' -- -n=3 | sed "s/( )/ 人/" | sed 's/^/./'#シェル芸
— ぐれさん (@grethlen) April 12, 2018
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/人/👑/'