18
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

シェル芸Advent Calendar 2019

Day 3

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

Last updated at Posted at 2019-12-02

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

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

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

t.png

最近は、世界でもっともクリーンな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/人/👑/'
18
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?