他のコマンドを一切使わず、sedだけでズンドコキヨシしてみた。
使い方
sed単体では乱数を発生できないため、標準入力(または入力ファイル)から乱数種となる文字列(ASCIIで7バイト以上)を入力する必要がある。それ以外は標準のズンドコキヨシの規定に従う。
me@here $ echo hogehoge | sed -f zundoko.sed
ズンドコズンズンドコズンドコズンズンドコズンドコドコドコズンズンドコドコドコドコ
ドコドコズンズンドコズンズンズンズンドコキ・ヨ・シ!
動作確認: GNU sed 4.2.2 (--posix
指定時も可)
ソースコード
zundoko.sed
:L1
y/!"#$%&'()*+,-.0123456789:;<=>?@/abcdefghijklmnpabcdefghijklmnop/
y/ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_`/abcdefghijklmnopabcdefghijkmnop/
y!qrstuvwxyz{|}~/!abcdefghijklmno!; s/[\]/l/g
s/[^pabcdefghijklmno]//g
/^......./! { N; s/\n//g; b L1; }
s/^\(.......\).*/\1/
s/\([pabcdefg]\)/0\1/g; s/\([hijklmno]\)/1\1/g; y/hijklmno/pabcdefg/
s/\([pabc]\)/0\1/g; s/\([defg]\)/1\1/g; y/defg/pabc/
s/p/00/g; s/a/01/g; s/b/10/g; s/c/11/g; x
:L2
/^.\{28\}/! { x; s/^\(.\)\(.\{24\}\)\(.\)\(..\)/\2\3\4:\1\3/
s/:\(.\)\1/0/; s/:../1/; x; s/^/*/; b L2; }
s/.//g
:L3
/00001$/! { x; s/^\(.\)\(.\{24\}\)\(.\)\(..\)/\2\3\4:\1\3/
s/:\(.\)\1/0/; s/:../1/; x; G; s/\n.*\(.\)$/\1/; b L3; }
s/0/ズン/g; s/1/ドコ/g; s/$/キ・ヨ・シ!/
q
まとめ
というわけで、人生で初めて書いたsedスクリプトがズンドコになってしまった…(うわぁ)。