Analog 5.01: エイリアス(別称)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文字とも一致しますし、* は、何個の文字とも (文字が無い場合を含む) 一致します。 また右側では、元の*と一致する名前の一部を表すのに$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へ変換します。
右側で$を表示するには$$を使います。あるいは、 どの $ や * もそのままで表示するためには、 右辺で "PLAIN:" を頭につけます。 例えば、
FILEALIAS /*/football/* PLAIN:/$1/soccer/$2は、/sport/football/rules.html を文字通り /$1/soccer/$2 に変換します。
analogの*は何でも表すわけではありません: もし2種類の可能な一致の仕方があれば、左側の表現ができる限り短くなる様な一致の仕方をとります。 これは頻繁に起こります。 しかし、例えばPerlの正規表現とは異なります。 (2つ連続する*は全く意味を持ちませんが、もし試したのであれば$1や$2等を当てはめる前に、1つの*になってしまいます。)
もしファイルが検索引数を持つときはFILEALIASやREFALIASの振る舞いはやや直感からはずれます。
Unixユーザーへの注意: もしコマンドラインで+Cを用いてALIASコマンドを与えたならば、シェルは$1等を適用したり展開したりして、あなたの望まない結果を出すでしょう。 このシェルの振る舞いを止めるには、2重引用符の代わりに1重引用符をコマンドに書いてください。
TYPEALIAS .txt ".txt (Plain text files)"は、ファイル種類別レポート中で該当行の説明をします。
いくつかのエイリアスと出力エイリアスコマンドは混乱を引き起こすかもしれません。 例えば、HOSTALIASとHOSTREPALIASの違いは何でしょうか。 実際には、エイリアスが処理されるタイミングにより、いくつかの違いが現れます。 HOSTALIASはホストの項目に適用されますが、HOSTREPALIASはホストレポートの行にのみ適用されます。 これは、HOSTALIAS がホスト名を使うドメインレポートのような他のレポートにも影響を及ぼすことを意味しますが、HOSTREPALIAS はホストレポートにだけ影響を及ぼします。(同様に、DOMALIAS は、ドメインレポートのみに適用されますが、他のレポートのドメインの変更はしません。)
他の違いは、HOSTREPALIASはホストレポートの各行に別々に適用されます。 これは、もし2つの異なるホスト名を HOSTALIAS コマンドで同じ名前にエイリアスを付けた場合、全てのレポート中で一つのホスト名になります。 しかしもし同じように HOSTREPALIAS コマンドが使われたならば、それらのホストは依然として2つのホストであり、ホストレポート中では別々の一覧になり、そのレポート中ではたまたま同じ名前を持つ2つの異なるホストになります。
要約すると、どの場合に各コマンドを使うべきだろうか。HOSTALIASは1つのホストが2つの異なる名前を持っている場合に通常使われるのに対して、HOSTREPALIASはホストレポートに注釈を付けるか、あるいは整理するために使われる。
出力エイリアスの全ての一覧は、REQALIAS - リクエスト、 REDIRALIAS - リダイレクト、 FAILALIAS - リクエスト不成功、 TYPEALIAS - ファイル種類別、 DIRALIAS - ディレクトリ、 HOSTREPALIAS - ホスト、REDIRHOSTALIAS- ホストリダイレクション、FAILHOSTALIAS - ホスト不成功、 DOMALIAS - ドメイン、 ORGALIAS - 組織別、 REFREPALIAS - リンク元URL、 REFSITEALIAS - リンク元サイト、 REDIRREFALIAS - リダイレクトされたリンク元URL、 FAILREFALIAS - リンク元不成功、 BROWREPALIAS - ブラウザ、 BROWSUMALIAS - ブラウザの概要、 OSALIAS - OS、 VHOSTREPALIAS - 仮想ホスト、 REDIRVHOSTREPALIAS - リダイレクトされた仮想ホスト、 FAILVHOSTREPALIAS - 仮想ホスト不成功、 USERREPALIAS - ユーザ、REDIRUSERALIAS - リダイレクトされたユーザ FAILUSERALIAS - ユーザ不成功 です。
レポート出力用エイリアスには既知のバグがあります。 レポートはエイリアスが適用される前にソートされます。 これはもしSORTBYがアルファベットに設定されていれば、そのレポートは正しくソートされないことを意味します。
"REGEXP:" をエイリアスの左前につけることによって、ALIAS コマンド中に正規表現を含むことができます。あるいは、"REGEXPI:" を使うことによって 、Perl の m//i あるいは Unix の egrep -i のように、大小文字の区別をしない一致検索を指定することができます。(もし、CASE INSENSITIVE と明記したら、ホスト名やファイル名のような多くの項目は自動的に大小文字を区別しなくなります。)
左括弧の順番に勘定して一番目、二番目等の括弧でくくられた左辺の表現を表すために、エイリアスの右辺では $1、 $2 等を使用できる。(ここでもまた、一重引用符でくくれば、$1、$2 等をコマンド行に書くことができる。)
正規表現は、文字列の一部分が一致すれば一致したことになる。文字列全体に一致させたいときには、正規表現の両端を ^ と $ でくくらなければならない。
例えばリクエストレポートの場合には、
REQALIAS 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メーリングリストをお使い下さい