2010年6月19日土曜日

AWKプログラムを、コマンドプロンプト画面に直接書いて実行する方法(Windows) - AWK

AWKプログラムを動かす
○Gawk on Windows ○Gawk ○mawk32 ○Mawk ○awk
AWKプログラムは、Windowsのコマンドプロンプト画面上に書いて、直接実行する事も出来ます。
引用符の使い方がUNIXと違いますので、気を付けます。

o 実行例(Gawkの場合)
----------------
gawk "BEGIN { print \"こんにちは。ミクさん。\"; }"
----------------

(入力ファイルがある時は、最後の「"」の後ろに、半角空白、入力ファイル名の順で追加します。)
(実行プログラムやファイルが見つからない時は、フルパス(= 完全な書き方)で指定します。)

**** Windowsのコマンドプロンプト画面に直接書く時の確認点
** 引用符について
o 一番外側の引用符は、「"」(= 二重引用符)を使います。
o 内側にも引用符(「"」や「'」)がある時は、「\"」に置き換えます。
o 「'」(= 一重の引用符)は引用符ではなく、単なる文字扱いになります。
   + 例外は、Mawk for Windows 1.3.3。この処理系は、「'」(= 一重の引用符)を「"」(= 二重引用符)に変換してから実行します。
o 詳しくは、「コマンドに、空白の入った引数(パラメーター)を渡す方法 - コマンドプロンプト画面

** UNIX特有の書き方について
o 内部でUNIXのコマンドを呼び出している時は、その部分が動きません。
   + Windowsでも動くように、コマンドを使っている部分を置き換えます。
   + もしくは、Windows上にUNIX実行環境を構築して、その上で動かします。Cygwinが有名です。


**** UNIXの実行例を置き換える時の手順
o 次のように置き換えます。
   + 一番外側に使う引用符を、「"」(= 二重引用符)
   + 内側で使う全ての引用符を、「\"」(\付きの二重引用符)
o 既に「\」が付いている引用符がある時は、変更が必要かどうか考えて下さい。


**** メモ
o AWKは、1行で書く実用的なプログラムが、世界中で公開されています。
o 興味のある方は、Web検索。検索キーワードは、「awk 1行野郎」「awk one liner」辺りがおすすめです。


**** 確認した処理系
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
    ▼制作メモ
    > AWKプログラムを別ファイルに書いて実行する
    標準出力と標準エラー出力。AWKプログラムの出力結果をファイルに書き出す
    沢山の入力ファイルを簡単に処理する
    ▼AWKプログラムを書く