Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

tac的な事をやるライブラリ「revoutput」

たまにawkでtac……つまり逆読み的な事をやる例題がありますね。
ああいった事をやる場合、実は標準添付ライブラリの「revoutput」を使うと苦労もなくいけます。

$ gawk '@load "revoutput"; BEGIN { REVOUT=1; print "sample string" > "/dev/stdout"}'
gnirts elpmas

このREVOUTがゼロになっていると、通常通り。

$ gawk '@load "revoutput"; BEGIN { REVOUT=0; print "sample string" > "/dev/stdout"}'
sample string

それ以外の数値になっていれば、発動します。
試しに99を突っ込んでも

$ gawk '@load "revoutput"; BEGIN { REVOUT=99; print "sample string" > "/dev/stdout"}'
gnirts elpmas

文字だとダメです。

$ gawk '@load "revoutput"; BEGIN { REVOUT='a'; print "sample string" > "/dev/stdout"}'
sample string

このライブラリ自体の使い道はともかく、このUI設計自体は実にAWK的と言えるのかもしれません。

参考もと

  • effective awk