AWK シミュレータ

PythonAWK のように使えないかと思い、こんなの書いてみました。

それを使うと、次のようなスクリプトを走らせられます。例がダサいのは、ご愛敬。

import awk

def func_BEGIN():
    print "Hello!"

def cond1(arg):
    return awk.NR <= 10
def func1(arg):
    if awk.NF > 0:
        print awk.NR, arg[0]
    else:
        print awk.NR

def func2(arg):
    print "[%d] (%s)" % (awk.NR, awk.LINE)

def func_END():
    print "Bye."

awk.append(awk.BEGIN, func_BEGIN)
awk.append(cond1, func1)
awk.append(r'R$', func2)
awk.append(awk.END, func_END)

awk.main_loop()

>