awk のランキング

TIOBE Index | TIOBE - The Software Quality Companyというサイトでは言語のランキングを集計してくれていて、言語の人気度合いを知ることができます。(久しぶりに見ると Lua の人気にビックリしてしまいましたが・・・最近の EDA 分野での使用も含まれているかもしれません)

サクっとこのランキングから awk だけを抜き出そうとしてみました。

#! /usr/local/bin/gawk -f
BEGIN {
    ORS = RS = "\r\n\r\n";
    http_url = "/inet/tcp/0/www.tiobe.com/80";
    print "GET http://www.tiobe.com/tiobe_index/index.htm HTTP/1.0"\
        |& http_url;
    ORS = RS = "\n";
    while ((http_url |& getline) > 0) {
        line[++i] = $0;
    }
    close(http_url);
    for (j = 1; j <= i; j++) {
        if (line[j] ~ /Awk/) {
            gsub(/\t?<\/?td>/, "", line[j - 1]);
            gsub(/\t?<\/?td>/, "", line[j]);
            gsub(/\t?<\/?td>/, "", line[j + 1]);
            print "AWK's Rank: " line[j - 1] " (" line[j + 1] ")";
        }
    }
}

実行してみましょう。

$ gawk -f get_awk_rank.awk
AWK's Rank: 24 (0.320%)

まぁ、こんなものでしょう。

上記ソースは一旦配列に格納して非効率なのですが、他のことに使おうとした時に HTML を直接パースできない awk にとっては後々楽なことも多いので、故意にそうしています。