|
© 2005-2012, Kyu-hachi
TABATA |
休八のスクリプト言語支援ソフト
Piper
(パイパー) ver 1.25 |
■1.grep, sed, awk を Windows で使う
DOS時代のスクリプト言語、grep, sed, awk
は、シンプル、パワフル、コンパクトで、とても便利なツールでした。実際、「こんな時は sed
だよね。」と思えるテキスト処理は依然としてありますから、Win時代の今でも利用者は少なくないはずです。
しかし、使い慣れているはずなのに、コマンドプロンプト画面で sed
でテキストファイルの文字列検索をやってみると、案外、面倒なことがわかりました。なぜなら、DOS時代と比べ、Windows
のディレクトリ構造は深くなりましたし、扱うファイルの数や種類は極端に増え、ファイル名も長くなり、2バイト文字の使用も頻繁になっているから
です。ま た、複数の窓を見ながら作業をするのに馴れた今では、type
文などを使って、ソースやテキストをいちいち覗くのはどうにも非能率的。
そこで、DOS 時代のスクリプト言語を Windows 上で操作したいと考えて、「Piper」 を作りました。
(1) テキスト処理(csv や html
なども含む)を前提にしています。
(2) 対象ファイルをスクリプト処理し、結果をファイルとして出力します。
(3) grep, sed, awk に標準対応。設定次第で、他の言語にも対応可能です。
シンプルなソフトですが、かなり快適になると思います。ご利用ください。
■2.Piper の機能
(1) 起動すると3つの画面が表示されます。スクリプト(メイン)、オブジェクト(対象ファイル)、リザルト (出力ファイル)の画面です。
(2)
スクリプトパネルの実行ボタンを押すと、そこに表示されているスクリプトを元に変換処理が行われ、オブジェクトファイルがリザルトファイルとして出力
されます (右図)。
(3) 変換にどのスクリプト言語を使うかを選ぶことができます。標準では grep, sed, awk に対応しています。設定ファイル
(Piper.cfg) を編集すれば、これら以外のスクリプト言語の使用に対応できます。設定された言語は、Piper
上でいつでも切り替えて使用できます。
(4) 仕組みは実に簡単で、スクリプト言語(sed.exe など)を引数付きで実行させるバッチ (temp.bat) を作製し、これを
Shell で実行しているだけです。スクリプト処理はスクリプト言語に任せ、Piper
はデータの受け渡し(=リダイレクト処理)とファイルの表示、保存などを行っています。
Piper
を使うと、スクリプトを編集しながら、手軽に動作確認ができ、その結果をファイルとして保存することができます。複雑な検索置換作業をするため
に、いろい ろと試してみたい時など、Piper がきっとお役に立つとと思います。どうぞ、この Piper で DOS
時代のスクリプト言語をもっと活用してください。
*Piper
といいながら、パイプ処理(=複数のプログラム間でのデータ受け渡しをする)ができるわけではありません。ただし、Piper.cfg
にパイプ処理を組み込めば、可能ではあります。お試しください。
*Piper という名前の由来は、Windows とスクリプト言語を pipe するソフトだからです。
■3.必要な外部プログラム
次の3つの言語プログラムを標準対応としていますので、それぞれダウンロードして、指定のファイルをpiper.exe
と同じディレクトリにコピーしてください。
実は私は上記以外はほとんど使ったことがないので、よく
わからないのですが、たぶん、これ以外のスクリプト言語でも、設定次第で使えると思います。でも、まずは上記3つの言語を入れてから Piper
を起動し、sample ファイルを使って、操作チェックをしてください(次項参照)。
■4.テュートリアル(サンプルの説明)
(1) sample.txt :練習用のテキストです。
こ れを対象ファイル として(= object
画面で)呼び出してみましょう。
* 以下、object は対象ファイル名、result はリダイレクト先ファイル名、option
はオプションコマンド、pattern はパターン、script
はスクリプトファイル名を示します。スクリプトファイルを切り替える時は、まず、処理言語の指定を変えてから、ファイルを参照すると、指
定された言語系の スクリプトだけが表示されますので、便利だと思います。
(2) sample.grep :grep スクリプトのサンプル。
メイン画面に呼び出して、[実行]ボタンを押してみましょう。このサンプルで
は、オプ ション -n を使って「愛用」という文字が含まれる行を行番号つきですべて表示します。-n を -c
と変えると行数のみを表示します。
*本来はコマンドラインで、grep
optionpattern object > result という形式で実行。このサンプルファイルは option pattern 部のコマンドをファイルにしたものです。なお、grep
はその性質上1行だけの記述で、ファイルではありますが、内容は1行のみとなります。
(3) sample.sed: sed スクリプトのサンプル。
メイン画面に呼び出して、[実行]ボタンを押してみましょう。このサンプルで
は、オプ ション s をつかって、「スクリプト」を script、「インタープリタ」を interpriter
に変換します。もうひとつのオプション g は、最後まで処理を続ける(すべての文字がチェックされる)ための命令です。
*本来はコマンドラインで sed -f script
object > result という形式で実行。このサンプルファイルは script
部で指定されるファイルにあたります。sed は複数処理が可能なので、option pattern が
必要な数だけ、1行1処理で記述されます。
(4) sample.awk: awk スクリプトのサンプル。
メイン画面に呼び出して、[実行]ボタンを押してみましょう。このサンプルで
は、「言 語」が含まれる全ての行の最初の要素(スペースかカンマで区切 られた最初の文字列)を列挙します。awk は本来は
csv形式のデータベースファイルを処理するのに向いた言語で、ちょっと sample.txt
は例として不向きかもしれませんが、ここでは強引に作業しています。
*本来は、コマンドラインで awk -f script
object > result という形式で実行。このサン プルファイルは script 部で指定されるファイルにあたります。awk
は複数処理を行うことができ、しかも条件分岐もできる強みがあります。option pattern が
必要な数だけ、1行1処理で記述できます。
■5.その他の機能
(1) オプション−プロンプト画面を開く: コマンドプロンプト画面(DOS画面)を表示することができます。dir をすると
temp.bat があるはずですが、これが Piper
の作ったバッチファイル。これをさらに直せば、パイプ処理などもできるようになります。
(2) オプション−フォント/フォントサイズ: フォントの種類やサイズを変更できます。
(3) ヘルプ− Web 参照: 登録されている Web ページを internet explorer
で表示します。最大20まで登録できます。
■6.設定ファイル
(1) Piper.cfg
Piper.cfg は使用する言語についての設定ファイルです。Piper.exe
と同じディレクトリにあり、テキストファイルなので、メモ帳などのテキストエディタで簡単に編集できます。自分の使いたい言語を 20
まで登録することができます。デフォルト状態の内容とその説明は下記のとおりです。
SED, sed.exe -f scr obj > res,
sed
GREP, grep.exe com obj > res, grep
GAWK, gawk.exe -f scr obj > res, awk
-----, ---------------------,
----
↑ ↑ ↑
言語名, コマンド, スクリプトの拡張子
【言語名】 自分で自由につけられます。
【拡張子】 sed, grep, awk など。ピリオドは不要。
【コマンド】 実行プログラムとその引数です。デフォルトでは引数部分に、リダイレクト記号 ">" を使って obj を res
に出力するようにしています。コマンド部には次の略号を使うことができます。
scr |
スクリプトファイル。処理の方法を書いたファイル。 |
obj |
オブジェクトファイル。処理の対象となるテキストファイル。 |
res |
リザルトファイル。処理の結果、出力されるテキストファイル。 |
com |
コマンド(またはパターン)。処理の方法そのもの。grep
などスクリプトファイルを指定できないもので使用。sed や awk などをコマンド形式で使いたい時にも利用できます。 |
(2) Piper.cf2
最後に使用した状態を保存しているファイルです。Piper.exe
と同じディレクトリにあり、テキストファイルなので、メモ帳などのテキストエディタで簡単に編集できます。内容は下記のとおり。
1行目〜3行目: Script, Object, Result
のファイル名(パス含む。相対パスでも絶対パスでも可)
4行目〜6行目: 3つの画面の表示位置、サイズの設定
7行目: フォントの種類、サイズ、起動時のスクリプト
(3) Piper.cf3
Web 参照の設定ファイルです。Piper.exe
と同じディレクトリにあり、テキストファイルなので、メモ帳などのテキストエディタで簡単に編集できます。内容は2行で一組となっていて、この繰
り返しを 最大20組まで登録できます。
1行目: 参照名 (例: SED 教室)
2行目: URL (例: http://www.gcd.org/sengoku/sedlec/)
■7.参考
万年初心者の私が参考にしているサイト&本を挙げておきます。これらのサイトは、ヘルプの Web
参照にも登録してあります。登録は、Piper.cf3 の編集で行います。変更や追加が可能です。
水谷正大 「パターンマッチと grep」
http://www.rsch.tuis.ac.jp/~mizutani/online/grep/index.html
仙石浩明 「SED教室」
http://www.gcd.org/sengoku/sedlec/
佐藤ちみも 「SEDは日暮れて」
http://www.chimimo.com/sed/
Wikipedia - SED
http://ja.wikipedia.org/wiki/Sed_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)
小栗栖 修 「AWK の第一歩」
http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/awk/intro/
The GNU Awk User's Guide
http://www.kt.rim.or.jp/~kbk/gawk-30/gawk_toc.html
片山裕 「sed パズルブック」
インプレス 1993年 \2,200
月刊アスキー編集部 「パソコン便利ブック」
月刊ASCII 1991年1月号特別付録
■8.履歴
ver 1.25 |
web ヘルプのURLを新しいものに修正。インストーラーを廃止。
|
2012/8 |
ver
1.20
|
き ちんとインストールしても、うまく動かないケースがあり(熊
本の樽本さん)、 このバグフィ クスをしながらバージョンアップしま
した。原
因は、バッチの呼び出し方に問題があり、ディレクトリなどが異なると不具合が生じていました。このほか、次のような機能を追
加。
(1) ファイル名表示の横に「参照」ボタンと「保存」ボタンを追
加。
(2) メニューのファイル・上書き保存の有効・無効を表示。
(3) スクリプトファイルの選択によって、言語系も自動で切り替わるようになりました。
(4) ヘル プ(このHTMLです)をかなり改訂。grep と awk のサンプルも追加。
(5) Web 参照の機能もつけました。参照したい web リストは任意に設定できます(Piper.cf3
で設定)。これ便利。
|
2006/5
|
ver
1.00
|
公開版
|
2005/7
|
*お名前は、バグ報告やリクエストをくださった方です。大変感謝しておりま す。ありがとうございました。ま
た、私自身の都合やプログラムの変更の手間の関係で、だいぶ時間がたってからの対応もしばしばですが、どうか、ご容赦ください。
■9.著作権など
このソフトは、フリーウェアであり、著作権を放棄したものではありません。ヘルプファイルやアイコンも含めて、改変したものを第3者へ譲渡するこ
とを禁じ ます。また、この Piper で利用するスクリプト言語については、それぞれの著作権を守ってください。
このソフトへのご意見等は、下記へお願いします。感想、バグ発見や改善のアイデアなどがありましたら歓迎します。最新情報や、他の自作ソフトなど
の紹介 は、私のホームページにありますので、どうぞおいでください。
http://www.geocities.jp/qqbjj485/Q-soft/piper/Piper.htm
田畑 純 (休八)
たばた まこと (きゅうはち)