2010年4月21日水曜日

gawkをmawk互換モードで動かす方法 - AWK

AWKプログラムを動かす
「-W posix」オプションを付けて実行します。
推奨は「-W lint」オプションとの併用。互換性の無い書き方について警告してくれます。

**** 実行コマンド例
--------
gawk -W posix -W lint test.awk in.txt > out.txt
--------



**** メモ
o 「mawkと同じ動き」ではなくて、良く似た動きをするみたいです。
  + gawkが独自に追加した書き方が無効になります。

o gawkでは「-W posix」の代わりに「--posix」と書く事も出来ます。でも、おすすめはしません。
  + 「-W」形式で書いたコマンドは、mawkでも、そのまま実行出来ます。
  + 「--posix」形式で書くと、mawkではエラーになります。
  + 但し、GNU環境しか使わない方に限っては、「--posix」形式の方が、覚える事が少なくて便利です。


**** 確認した処理系
o Gawk on Windows 3.1.7


==
関連ページ:
    ▼AWKプログラムを動かす
    ▼AWKプログラムを書く
    ▼AWK
    ▼制作メモ
    > AWKプログラムを速く動かす方法
    gawkをオリジナルのAWK互換モードで動かす

gawkをオリジナルのAWK互換モードで動かす方法 - AWK

AWKプログラムを動かす
「-W traditional」オプションを付けて実行します。
推奨は「-W lint-old」オプションとの併用。互換性の無い書き方について警告してくれます。

**** 実行コマンド例
ポイントは、Wオプションの位置です。
--------
gawk -W traditional -W lint-old test.awk in.txt > out.txt
--------



**** 確認した処理系
o Gawk on Windows 3.1.7


==
関連ページ:
    ▼AWKプログラムを動かす
    ▼AWK
    ▼制作メモ
    > gawkを mawk互換モードで動かす
    ▼AWKプログラムを書く

AWKのバージョンを確認する方法 - AWK

AWKプログラムを動かす
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ×awk
「 -W version」オプションを付けて実行します。

**** 実行例
o Gawkは「-W version」もしくは「--version」
----------------
gawk -W version
----------------


o mawkは
----------------
mawk32 -W version
----------------


o original = the one true awk(updated May 1, 2007)には、該当するオプションはありませんでした。
o でも、UNIX環境の方は、試してみると良いかもしれません。
   + システムによっては、awkコマンドが mawkや gawkと関連付けられている事があるからです。


**** メモ
レンタルサーバーに入っているawkは、最新版とは限りません。
awkプログラムを作る時は、最初にawkの種類とバージョンを確認して、その種類とバージョンで動くようにプログラムを書きます。


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3
o Mawk for Windows 1.3.3
o original = the one true awk(updated May 1, 2007) -- 非対応


==
関連ページ:
    ▼AWKプログラムを動かす
    ▼AWK
    ▼制作メモ
    > Gawkで、オプション一覧を表示する
    Gawkの操作説明書(マニュアル)をオンラインで見る
    mawkの操作説明書(マニュアル)をオンラインで見る
(2010年9月11日追加。オリジナルAWKについて)
(2010年5月15日追加。レンタルサーバーに関する説明)