awk
フロントエンド


このフロントエンドからは、テキストの各行をフィールドに分割して処理するawk言語のスクリプトを実行できます。このフロントエンドの「実行」ボタンは、何らかのスクリプトが指定されたときに有効になります。

 

通常のウィンドウ

のメインダイアログから起動したときのウィンドウ

 

このGUIフロントエンドを使うためには、awkコマンド行ツールを入手する必要があります。awkにはさまざまな実装があり、さまざまな名前が付けられています。私が知っているものは、以下のものです。

 

 true one awk  awk言語の開発者の1人であるBrian Kernighan博士のサイト(http://cm.bell-labs.com/cm/cs/awkbook/index.html)で公開されています。ソース付き。

* gawk       cygwinhttp://sources.redhat.com/cygwin/)ツールのawk

* jgawk       GNU awk2バイト文字対応の正規表現などの拡張を加えてあります(拡張は田中良知氏による)。16ビットプログラム。http://www.vector.co.jp/soft/dos/util/se000208.htmlからダウンロード可能。

* gawk       これもGNU awk2バイト文字対応の正規表現などの拡張が加えてあります(谷本孝浩氏による)。32ビットプログラム。http://www.vector.co.jp/soft/win95/util/se015007.htmlからダウンロード可能。

* mawk       mawkMBCS対応版。http://www.vector.co.jp/soft/win95/util/se080308.htmlからダウンロードできます。

 

また、awk言語については、以下の参考書があります。ここでは、awk言語の詳細には一切触れませんので、awk言語に関心のある方はこれらの書籍をお読みください。

 

* Aho, Weinberger, and Kernighan , “The Awk Programming Language,” Addison-Wesley, 1988: 足立高徳訳『プログラミング言語AWK1989年トッパン

* Dougherty and Robbins, “sed & awk Second Edition,” O’Reilly and Associates, 1997: 福崎俊博訳『sed&awkプログラミング1997年オライリー・ジャパン

オプション

クリップボードの内容を標準入力としてリダイレクトする

書かれている通り、「編集/入力ファイル」タブで指定されている入力を使わず、クリップボードの内容を標準入力にリダイレクトします。

スクリプト

 

awkプログラムにとって何よりも重要なのは、スクリプトです。スクリプトは、コマンド行で直接指定することもできますし、スクリプトが格納されたファイルを指定することもできますが、どちらか片方しか指定できません。コマンド行で直接指定する場合には、 1行分のスクリプトを指定できるだけですが、ファイルは複数指定できます。また、"を使うスクリプトをコマンド行から直接渡すのは面倒ですので、スクリプトはファイルにまとめておいた方がよいかもしれません。

 

-f: ファイル    このラジオボタンを選択すると、スクリプトが格納されたファイルを指定するという形でawkにスクリプトを渡します。スクリプトファイルは複数指定でき、指定した順番で処理されます。

 

追加 このボタンを押すと、「ファイルを開く」ダイアログボックスが表示されます。このダイアログボックスでファイルを選択すると(複数選択可)、スクリプトファイルリストにスクリプトファイルを追加できます。ダイアログボックスが最初に表示するフォルダは、前回スクリプトファイルを選択したフォルダですので、スクリプトファイルを1つのフォルダにまとめておけば、フォルダ移動をせずにスクリプトファイルを選択できます。

編集 このボタンを押すと、「設定」ダイアログボックスの「スクリプトファイル編集用エディタ」で指定されたエディタを使って、スクリプトファイルリスト内のスクリプトをオープンします。複数のファイルを同時にオープンできます。エディタ内で保存されたスクリプトファイルは、ただちに利用できます。エディタをいちいちクローズする必要はありません。

削除 このボタンを押すと、スクリプトファイルリストからスクリプトファイルを取り除きます。ディスクからファイルを削除するわけではありません。複数のファイルを同時に削除できます。

 

スクリプトファイルリスト内のアイテムは、マウスでドラッグして順番を変えることができます。

 

コマンド      このラジオボタンを選択すると、すぐ下のエディットボックスに書き込まれたスクリプトがawkに渡されます。エディットボックスに書き込まれた内容は、フロントエンドによって””で囲まれて、awkに渡されます。たとえば、エディットボックスに{print;}と入力して「クリップボードの内容を標準入力としてリダイレクトする」をチェックすれば、catコマンドを使ったときと同様に、クリップボードの内容がそのまま表示されます。

変数/入力ファイル

 

awkのコマンド行は、スクリプト内の変数の値を設定できるようになっており、変数値設定引数と入力ファイル引数を互い違いに指定することさえできます。たとえば、原稿の行数が書かれているファイル(: wcの出力)から原稿料を計算するスクリプト(page.awk)があったとして、

 

awk –f page.awk "unitp=1000" C:/works/article.wc "unitp=10000" C:/works/article.wc

 

というコマンド行を実行すると、

 

400字単価0円としたときの原稿料計算)

タイトル          page           \

chap01             86           86000

chap02             66           66000

chap03             31           31000

chap01             86          860000

chap02             66          660000

chap03             31          310000

小計              366         2013000

消費税                         100650

合計                          2113650

 

というような出力が得られます。最初のarticle.wcの内容は、ページ単価(unitp変数)1,000円で計算され、2度目のarticle.wcの内容はページ単価10,000円で計算されています。つまり、変数をどこで設定し、入力ファイルをどこで与えるかによって処理結果が変わってくるのです。

そこで、タブ付きダイアログの2ページ目は、変数と入力ファイルを任意の順番で指定できるようになっています。1ページ目と同様に、「追加」、「編集」、「削除」ボタンでリストの内容を操作できますが、「追加」ボタンで追加されるものは、その上の4種類のラジオボタンによって決まります。

 

* ファイル  入力ファイルを追加します。このボタンが選択されているときに「追加」ボタンを押すと、標準の「ファイルを開く」ダイアログボックスが表示されます。「ファイルを開く」ダイアログボックスでは、複数の異なるファイルを選択できますが、同じファイルを複数回選択したい場合には、「追加」ボタンを複数回押す必要があります。このボタンによってリストに追加されたアイテムをダブルクリックするか、アイテムが選択されている状態で「編集」ボタンを押すと、ファイルの内容を編集できます。

* stdin    このツールセットのお約束で、クリップボードの内容を標準入力に見立てて使います。このボタンによって追加されたアイテムは編集できません

* spec    ファイル名を直接指定します。*?のワイルドカードを使うことができます。相対パス名を指定した場合、オプションの上に表示されているカレントディレクトリを基準にファイルを探します。このボタンによってリストに追加されたアイテムをダブルクリックするか、アイテムが選択されている状態で「編集」ボタンを押すと、ファイル名の指定自体を編集できます。

 

 

* 変数    変数名と値を指定します。このボタンによってリストに追加されたアイテムをダブルクリックするか、アイテムが選択されている状態で「編集」ボタンを押すと、変数名、値とも書き換えることができます。-vオプションを指定すると、変数はすべてのファイルが読み出される前、BEGIN節が実行されるよりも前に設定されます。

 

 

 

-F このオプションを指定すると、FS変数(フィールドセパレータ)を変更できます。

misc

 

このページには、実装固有のオプションが含まれています。

DBCS

 

このページでは、2バイトコードのオプションを指定します。

コマンド行

出力グループボックスの下の行には、組み立てたコマンド行が表示されます。(pipeline)の「編集」ボタンで起動したときを除き、コマンド行の左側の四角形をマウスでクリックしてドラッグしていくと、他のcmdline)にドロップできます。また、「コピー」ボタンを押すと、コマンド行情報がクリップボードにセットされます。クリップボードにコマンド行情報がセットされているときに、マウスの右ボタンをクリックし、コンテキストメニューから「貼り付け」を選択すると、クリップボードのコマンド行情報が反映されます。ドラッグアンドドロップとコピーアンドペーストの詳細は、「ドラッグアンドドロップとコピーアンドペースト」を参照してください。エキスポート、インポートされるときのコマンド行情報の形式については、「コマンド行情報のやり取りの仕組み」を参照してください。さらに、「.batロード」、「.bat保存」ボタンを使えば、同じ形式のコマンド行情報を.batファイルとして保存し、あとでロードすることができます。このロード、保存機能の詳細は、「.batファイルのロードと保存」を参照してください。

コマンド行

出力グループボックスの下の行には、組み立てたコマンド行が表示されます。(pipeline)のメインダイアログボックスから起動したわけではない場合には、コマンド行の左側の四角形をマウスでクリックしてドラッグしていくと、のメインダイアログボックスにドロップできます。

作業ディレクトリの設定

作業ディレクトリを表示しているエディットボックスを直接編集したり、マイコンピュータ、エクスプローラなどからフォルダを1つだけドロップしたりすると、作業ディレクトリを変更できます。「ChDir」ボタンでも、作業ディレクトリを設定できます。作業ディレクトリの設定が必要になるのは、入力ダイアログボックスの「直接指定する」を使うときです。詳しくは、「作業ディレクトリ」を参照してください。

設定

設定」ボタンを押すと、「設定」ダイアログボックスが表示されます。このダイアログボックスでは、

 

*出力の表示に使うテキストエディタ

*スクリプトの編集に使うテキストエディタ

*エクスプローラなどからファイルやフォルダをドロップしたときの確認メッセージの有無

*出力の末尾に実行したコマンド行、実行時間などを付加するかどうか

*コマンド行プログラムに渡すファイル名のディレクトリ区切り子を\ではなく/にするかどうか

*コマンド行プログラムに渡すファイル名を8.3形式にするかどうか

*コマンド行プログラムとしてどれを使うか

*デフォルトのコマンド名をどれにするか

 

を指定できます。詳しくは、「設定ダイアログボックス」を参照してください。

opt保存

opt保存」ボタンを押すと、「オプション」グループボックス内の設定が保存されます。詳しくは「オプション保存」を参照してください。

環境変数

環境変数」ボタンを押すと、awkプログラムに渡す環境変数を編集できます。詳しくは「環境変数の設定」を参照してください。