Analog 4.16: エイリアス(別称)CASE INSENSITIVE (訳者注:# 大文字小文字を区別しない) CASE SENSITIVE (訳者注:# 大文字小文字を区別する)もしログファイルがこられらを記録するなら、ユーザー名にもにたコマンドがあります。 初期設定によって、ユーザー名は常に大文字小文字の違いを無視しますが、以下を優先して指定することができます。
USERCASE SENSITIVE (訳者注:# 大文字小文字を区別する)
DIRSUFFIX default.htm(DIRSUFFIXは1つだけ指定できます。)別のビルトインエイリアスもあります:例えば、ホスト名はこの時点で小文字に変換されます。
FILEALIAS /football.html /soccer.html HOSTALIAS lion lion.statslab.cam.ac.uk他の全てのエイリアスをうち消す特別なコマンドFILEALIAS noneもあります。
他の項目に対するエイリアスにはBROWALIAS - ブラウザ名、REFALIAS - リンク元、USERALIAS - ユーザー名、そしてVHOSTALIAS - 仮想ホストがあります。 各項目に対しては1回だけエイリアスが適用されます。
FILEALIAS /football.html /soccer.html FILEALIAS /soccer.html /brazil.htmlファイル/soccer.htmlは/brazil.htmlへ変換されますが、/football.htmlはただ/soccer.htmlへ変換され、2つ目のエイリアスは適用されません。
エイリアスコマンドではワイルドカード(?や*)も使えます。 また右側では、元の*と一致する名前の一部を表すのに$1、$2等も使えます。 (右側で$を表示するには$$を使います。) 特別な略記として、もし左側に*がただ一つあるならば、右側で$1と同様に*を使うことができます。 例えば
FILEALIAS /*/football/* /soccer/は/sport/football/rules.htmlを/soccer/へ変換しますが、
FILEALIAS /*/football/* /$1/soccer/$2 # または FILEALIAS /sport/football/* /sport/soccer/*もまた/sport/football/rules.htmlを/sport/soccer/rules.htmlへ変換します。
analogの*は何でも表すわけではありません: もし2種類の可能な一致の仕方があれば、左側の表現ができる限り短くなる様な一致の仕方をとります。 これは頻繁に起こります。 しかし、例えばPerlの正規表現とは異なります。 (2つ連続する*は全く意味を持ちませんが、もし試したのであれば$1や$2等を当てはめる前に、1つの*になってしまいます。)
もしファイルが検索引数を持つときはFILEALIASやREFALIASの振る舞いはやや直感からはずれます。
Unixユーザーへの注意: もしコマンドラインで+Cを用いてALIASコマンドを与えたならば、シェルは$1等を適用したり展開したりして、あなたの望まない結果を出すでしょう。 このシェルの振る舞いを止めるには、2重引用符の代わりに1重引用符をコマンドに書いてください。
TYPEOUTPUTALIAS .txt ".txt (Plain text files)"ファイルタイプレポート中でその行の説明を挿入します。
いくつかのALIASとOUTPUTALIASコマンドは混乱を引き起こすかもしれません。 例えば、HOSTALIASとHOSTOUTPUTALISAの違いは何でしょうか。 実際には、エイリアスが処理される時間の違いによる、いくつかの違いがあります。 HOSTALIASはホストの項目に適用されますが、HOSTOUTPUTALISAはホストレポートの行に適用されます。 これはHOSTALIASはドメインレポートのようにホスト名を使う他のレポートにも影響を及ぼすことを意味しますが、HOSTOUTPUTALISAはホストレポートにだけ作用します。 また、HOSTOUTPUTALIASはホストレポートの各行に別々に適用されます。 これは、もし2つの異なるホスト名をHOSTALIASコマンドで同じ名前に変換した場合、それ以降一つのホストとして扱われます。 しかしもし同じようにHOSTOUTPUTALIASコマンドが使われたならば、それらは一つのレポート中ではたまたま同じ名前を持つ、二つの異なるホストになります。
要約すると、HOSTOUTPUTALIASはホスト報告に注釈を付けるか、あるいは明確にするために通常使われるであろうのに対して、HOSTALIASは1つのホストが2つの異なる名前を持っていて、2つの異なるホストと思われるような場合に使われます。
出力エイリアスの全ての一覧はREQOUTPUTALIAS - リクエスト、 REDIROUTPUTALIAS - リダイレクト、 FAILOUTPUTALIAS - ファイル不在、 TYPEOUTPUTALIAS - ファイルタイプ、 DIROUTPUTALIAS - ディレクトリ、 HOSTOUTPUTALIAS - ホスト、 DOMOUTPUTALIAS - リモートドメイン、 ORGOUTPUTALIAS - ドメイン、 REFOUTPUTALIAS - リンク元、 REFSITEOUTPUTALIAS - リンク元サイト、 REDIRREFOUTPUTALIAS - リダイレクトリンク元、 FAILREFOUTPUTALIAS - ファイル不在リンク元、 BROWOUTPUTALIAS - ブラウザ概要、 FULLBROWOUTPUTALIAS - ブラウザ、 OSOUTPUTALIAS - OS、 VHOSTOUTPUTALIAS - 仮想ホスト、 USEROUTPUTALIAS - ユーザ、 FAILUSEROUTPUTALIAS - 不在ユーザです。
OUTPUTALIASには既知のバグがあります。 レポートはOUTPUTALIASが適用される前にソートされます。 これはもしSORTBYがアルファベットに設定されていれば、そのレポートは正しくソートされないことを意味します。
"REGEXP:" をエイリアスの左前につけることによって、ALIAS コマンド中に正規表現を含むことができます。あるいは、"REGEXPI:" を使うことによって Unix の egrep -i のように大小文字の区別をしない一致検索を指定することができます。(もし、CASE INSENSITIVE と明記したら、ホスト名やファイル名のような多くの項目は自動的に大小文字を区別しなくなります。)
左括弧の順番に勘定して一番目、二番目等の括弧でくくられた左辺の表現を表すために、エイリアスの右辺では $1、 $2 等を使用できる。(ここでもまた、一重引用符でくくれば、$1、$2 等をコマンド行に書くことができる。)
正規表現は、文字列の一部分が一致すれば一致したことになる。文字列全体に一致させたいときには、正規表現の両端を ^ と $ でくくらなければならない。
例えばリクエストレポートの場合には、
REQOUTPUTALIAS REGEXP:^(/~(.+?)/.*)$ "[$2] $1"は
/~sret1/backgammon/rules.htmlを
[sret1] /~sret1/backgammon/rules.htmlに変換する。 または
HOSTALIAS REGEXP:^([^.]*)$ $1.mycompany.comは、全てのピリオッドを含んでいないホスト名に .mycompany.com を付け加える。 (これが良い考えかどうかは FAQ の議論を見よ。)
正規表現は貪欲である:もし2種類の一致の仕方があるときには、左側の一致を可能な限り進めてゆく。
Stephen Turner
analogについての質問はanalog-helpメーリングリストをお使い下さい