映画 MATRIX のような画面

Matrix Style のような出力を得るには様々な方法がありますが、ここでは awk を用いて表現してみます。

アルファベットのランダムな文字はAWK Users JP :: 囲まれた文字列の置換で既に出ていますし、スペースの接続はAWK Users JP :: 同じ文字列のn回繰り返しを作る方法で出ていますし (もちろんAWK Users JP :: 同じ文字列のn回繰り返しを作る方法 (その 2)も使えます)、色付けはAWK Users JP :: みんなの願い事がわかる awk スクリプトを参考にすればいいでしょう。

#! /usr/local/bin/nawk -f
# matrix.awk
# MATRIX のような画面を生成します
# usage: gawk -f matrix.awk

BEGIN {
    for (;;) {
        printf("\x1b[0;32m%c", int(rand() * 26) + 65);
        printf("%s", repeat_str(" ", int(rand() * 15)));
        printf("\x1b[1;32m%c", int(rand() * 26) + 65);
        printf("%s", repeat_str(" ", int(rand() * 15)));
    }
}

function repeat_str(str, num,   i, result) {
    for (i = 1; i <= num; i++) {
        result = result str;
    }
    return result;
}

DoukakuAWK_181.png

実行してみましょう。 静止させると雰囲気がないですが、上記スクリプトは濃淡も出力していますので、実行させるとそれなりに似ているのではないかと思います。

awk はジョークソフトのモックアップのようなものとしても利用されていたことがあるようです。

tag_nawk.pngtag_nawk.pngtag_nawk.pngtag_nawk.png