awk で GUI

gtk_hello_world.png awk は Perl のように単独では GUI (GTK2) を扱うことはできません。そこで、Gtkdialog の力をお借りします。もちろん、他の方法もあると思いますが、Gtkdialog を使うと awk だけでなく、shell などからも呼び出すことができるため便利です。

Gtkdialog のサンプルはソースコードにも多く含まれていますが、awk を使った例は Web 上にもあります。

とりあえず、コードから示します。

#! /usr/bin/gawk -f
BEGIN {
    print_str = "Hello AWK World!";
    tmp_file = "/tmp/awk" PROCINFO["pid"];
    MAIN_DIALOG = "\n\
    <vbox>\n\
        <text>\n\
            <label>" print_str "</label>\n\
        </text>\n\
        <hbox>\n\
            <button ok> </button>\n\
        </hbox>\n\
    </vbox>\n";
    print MAIN_DIALOG > tmp_file;
    close(tmp_file);
    system("gtkdialog -f " tmp_file);
    system("rm -f " tmp_file);
}

見てしまうと「なぁ〜んだ」という感じもしてしまいますが、これをどう使うかはユーザー次第ということろでしょうか。あくまでサンプルであり実用的なものは難しそうです。