sed で酒を飲むには
プログラマーはプログラミング言語で酒が飲めるぞー!酒が飲める飲めるぞー!酒が飲めるぞー! http://togetter.com/li/212550
ここに収録された sed で酒が飲めるコードは不完全なのです。140文字に納まりませんでした(;_;)
ちゃんと酒が飲めるコードはこうです。(セミコロンは開きました)
s/[0-9]*/& 月はsedで酒が飲めるぞー 酒が飲める飲めるぞー 酒が飲めるぞー/ :l h;/12 /q p g s/9/_/ s/^\(_*\) /1\1 / s/8 /9 / s/7 /8 / s/6 /7 / s/5 /6 / s/4 /5 / s/3 /4 / s/2 /3 / s/1 /2 / s/0 /1 / y/_/0/ b l
(コードをsake1.sed にコピペして echo 1|sed -f sake1.sed とする)
見ての通り、sコマンドで加算を行う部分がどうにも巨大で140字に納まりません。
はじめ y コマンドで y/0123456789/123456789_/ と書いたのですが、これだとすべての桁の数字が置換されて、2桁になるとめちゃめちゃなんですね。
そこで、@inarimae さんがエレガントなコードを書いてくれました。
s/./&月はsedで@ぞー@飲めるぞー@ぞー/ s/@/ 酒が飲める/g :l h s/A/10/ s/B/11/ s/C/12/ /12/q p g y/123456789AB/23456789ABC/ b l
(これもコードをsake2.sed にコピペして echo 1|sed -f sake2.sed とする)
そうか、12進数だと考えれば良かった!
プログラミングは楽しいなあ!