OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man7 / glob.7
index b0c351c..92815c7 100644 (file)
 .\"
 .\" 2003-08-24 fix for / by John Kristoff + joey
 .\"
-.\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved.
-.\" Translated Wed 12 Aug 1998 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
-.\" Updated 2003-09-28 by NAKANO Takeo
+.\"*******************************************************************
 .\"
-.\"WORD:       wild card pattern       ¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó
-.\"WORD:       character class         Ê¸»ú¥¯¥é¥¹
-.\"WORD:       range                   Îΰè»ØÄê
-.\"WORD:       complementation         Ê佸¹ç
-.\"WORD:       regular expression      Àµµ¬É½¸½
-.\"WORD:       bracket expression      ¥Ö¥é¥±¥Ã¥Èɽ¸½
-.\"WORD:       collating sequence      ¾È¹ç½ç½ø
-.\"WORD:       collating element       ¾È¹ç½ç½ø¤ÎÍ×ÁÇ
-.\"WORD:       current locale          ¥«¥ì¥ó¥È¥í¥±¡¼¥ë
-.\"WORD:       equivalence class       Åù²Á¥¯¥é¥¹
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH GLOB 7 2003-08-24 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-glob \- ¥Ñ¥¹Ì¾¤ò glob ¤¹¤ë
-.SH ÀâÌÀ
-ÀΡ¹ Unix V6 ¤Ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤òŸ³«¤¹¤ë
-.I /etc/glob
-¤È¸À¤¦¥×¥í¥°¥é¥à¤¬¤¢¤Ã¤¿¡£¤½¤Î¸å¤¹¤°¤Ë¡¢
-¤³¤Îµ¡Ç½¤Ï¥·¥§¥ë¤ËÁȤ߹þ¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤¿¡£
+.\"*******************************************************************
+.TH GLOB 7 2003\-08\-24 Linux "Linux Programmer's Manual"
+.SH 名前
+glob \- パス名を glob する
+.SH 説明
+昔々 UNIX V6 では、ワイルドカードパターンを展開する \fI/etc/glob\fP と言うプログラムがあった。その後すぐに、
+この機能はシェルに組み込まれるようになった。
 
-º£Æü¤Ç¤Ï¡¢¤³¤Îµ¡Ç½¤ò¥æ¡¼¥¶¡¼¥×¥í¥°¥é¥à¤«¤é¤â¼Â¹Ô¤Ç¤­¤ë¤è¤¦¡¢
-.BR glob (3)
-¤È¤¤¤¦¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤â¸ºß¤·¤Æ¤¤¤ë¡£
+今日では、この機能をユーザープログラムからも実行できるよう、 \fBglob\fP(3)  というライブラリルーチンも存在している。
 
-glob ¤Îµ¬Â§¤ò°Ê²¼¤Ë½Ò¤Ù¤ë (POSIX.2 3.13)¡£
-.SS ¥ï¥¤¥ë¥É¥«¡¼¥É¥Þ¥Ã¥Á
-ʸ»úÎó¤Ë \(aq?\(aq, \(aq*\(aq, \(aq[\(aq ¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤È¡¢
-¤½¤ì¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤È¤ß¤Ê¤µ¤ì¤ë¡£
-¡Öglob ¤¹¤ë¡×¤È¤¤¤¦¤Î¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤òŸ³«¤·¤Æ¡¢
-¤½¤Î¥Ñ¥¿¡¼¥ó¤Ë¥Þ¥Ã¥Á¤¹¤ë¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤òÆÀ¤ë¤³¤È¤Ç¤¢¤ë¡£
-¥Þ¥Ã¥Á¤Ï°Ê²¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤ë¡£
+glob の規則を以下に述べる (POSIX.2 3.13)。
+.SS ワイルドカードマッチ
+文字列に \(aq?\(aq, \(aq*\(aq, \(aq[\(aq が含まれていると、 それはワイルドカードパターンとみなされる。 「glob
+する」というのは、ワイルドカードパターンを展開して、 そのパターンにマッチするパス名のリストを得ることである。 マッチは以下のように定義される。
 
-(¥Ö¥é¥±¥Ã¥È³°Éô¤Î) \(aq?\(aq ¤Ï¤¢¤é¤æ¤ëñ°ì¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£
+(ブラケット外部の) \(aq?\(aq はあらゆる単一の文字にマッチする。
 
-(¥Ö¥é¥±¥Ã¥È³°Éô¤Î) \(aq*\(aq ¤Ï¤¢¤é¤æ¤ëʸ»úÎó¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£
-¶õʸ»úÎó (empty string) ¤Ë¤â¥Þ¥Ã¥Á¤¹¤ë¡£
+(ブラケット外部の) \(aq*\(aq はあらゆる文字列にマッチする。 空文字列 (empty string) にもマッチする。
 .PP
-.B "ʸ»ú¥¯¥é¥¹ (character class)"
+\fB文字クラス (character class)\fP
 .sp
-"\fI[...]\fP" ¤È¸À¤¦É½µ­¤Ï¡¢ÀèƬ¤Î \(aq[\(aq ¤Ë³¤¯ºÇ½é¤Îʸ»ú¤¬ \(aq!\(aq ¤Ç
-¤Ê¤±¤ì¤Ð¡¢¥Ö¥é¥±¥Ã¥È¤ÎÃæ¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ëʸ»ú¤Î¤É¤ì¤«°ì¤Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£
-¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤ëʸ»úÎó¤Ï¶õ¤Ç¤¢¤Ã¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£
-¤·¤¿¤¬¤Ã¤Æ \(aq]\(aq ¤âºÇ½é¤Îʸ»ú¤Ë»ØÄꤹ¤ì¤Ð¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤á¤ë¤³¤È¤¬
-¤Ç¤­¤ë (¤Ä¤Þ¤ê "\fI[][!]\fP" ¤Ï \(aq[\(aq, \(aq]\(aq, \(aq!\(aq ¤Î
-3 Ê¸»ú¤Î¤É¤ì¤«¤Ë¥Þ¥Ã¥Á¤¹¤ë)¡£
+"\fI[...]\fP" と言う表記は、先頭の \(aq[\(aq に続く最初の文字が \(aq!\(aq で
+なければ、ブラケットの中に含まれている文字のどれか一つにマッチする。 ブラケットの内部に含まれる文字列は空であってはならない。 したがって
+\(aq]\(aq も最初の文字に指定すればブラケットの内部に含めることが できる (つまり "\fI[][!]\fP" は \(aq[\(aq,
+\(aq]\(aq, \(aq!\(aq の 3 文字のどれかにマッチする)。
 .PP
-.B "Îΰè»ØÄê (range)"
+\fB領域指定 (range)\fP
 .sp
-Æüì¤Êɽµ­Ë¡¤¬°ì¤Ä¸ºß¤¹¤ë¡£\(aq\-\(aq ¤ò¶´¤àÆó¤Ä¤Îʸ»ú¤ÏÎΰè»ØÄê¤È¤Ê¤ë¡£
-(¤Ä¤Þ¤ê "\fI[A\-Fa\-f0\-9]\fP" ¤Ï "\fI[ABCDEFabcdef0123456789]\fP"
-¤ÈÅù²Á¤È¤Ê¤ë¡£) \(aq\-\(aq Ê¸»ú¤½¤Î¤â¤Î¤òÆþ¤ì¤¿¤¤¾ì¹ç¤Ï¡¢
-¥Ö¥é¥±¥Ã¥È¤ÎÀèƬ¤Þ¤¿¤ÏºÇ¸å¤Îʸ»ú¤Ë»ØÄꤹ¤ì¤Ð¤è¤¤¡£
-(¤Ä¤Þ¤ê "\fI[]\-]\fP" ¤ÏÆó¤Ä¤Îʸ»ú \(aq]\(aq ¤È \(aq\-\(aq
-¤Ë¥Þ¥Ã¥Á¤·¡¢"\fI[\-\-0]\fP" ¤Ï \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq ¤Î
-3 Ê¸»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£¤³¤Î´Ö¤Î \(aq/\(aq ¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¡£¸å½Ò¤ò»²¾È¡£)
+特殊な表記法が一つ存在する。\(aq\-\(aq を挟む二つの文字は領域指定となる。 (つまり "\fI[A\-Fa\-f0\-9]\fP" は
+"\fI[ABCDEFabcdef0123456789]\fP" と等価となる。) \(aq\-\(aq 文字そのものを入れたい場合は、
+ブラケットの先頭または最後の文字に指定すればよい。 (つまり "\fI[]\-]\fP" は二つの文字 \(aq]\(aq と \(aq\-\(aq
+にマッチし、"\fI[\-\-0]\fP" は \(aq\-\(aq, \(aq.\(aq, \(aq0\(aq の 3 文字にマッチする。この間の
+\(aq/\(aq にはマッチしない。後述を参照。)
 .PP
-.B Ê佸¹ç (complementation)
+\fB補集合 (complementation)\fP
 .sp
-"\fI[!...]\fP" ¤È¸À¤¦É½µ­¤Ï¡¢¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ë´Þ¤Þ¤ì¤Ê¤¤Ã±°ì¤Îʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë
-(¤¿¤À¤·ÀèƬ¤Ë¤¢¤ë \(aq!\(aq ¤Ï½ü³°)¡£ (¤Ä¤Þ¤ê "\fI[!]a\-]\fP" ¤Ï
-\(aq]\(aq, \(aqa\(aq, \(aq\-\(aq °Ê³°¤Î¤¹¤Ù¤Æ¤Îʸ»ú¤Î¡¢¤É¤ì¤«°ì¤Ä¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£)
+"\fI[!...]\fP" と言う表記は、ブラケットの内部に含まれない単一の文字にマッチする (ただし先頭にある \(aq!\(aq は除外)。 (つまり
+"\fI[!]a\-]\fP" は \(aq]\(aq, \(aqa\(aq, \(aq\-\(aq 以外のすべての文字の、どれか一つにマッチする。)
 
-¥Ð¥Ã¥¯¥¹¥é¥Ã¥·¥å \(aq\e\(aq ¤òÁ°ÃÖ¤¹¤ì¤Ð¡¢ \(aq?\(aq, \(aq*\(aq, \(aq[\(aq
-¤ÏÄ̾ï¤Îʸ»ú¤È¤·¤Æ°·¤ï¤ì¤ë¡£
-¤Þ¤¿¤Ï¥·¥§¥ë¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤Î°ìÉô¤Ë»ØÄꤹ¤ë¾ì¹ç¤Ï¡¢
-¥¯¥©¡¼¥È¤Ç°Ï¤Ã¤Æ¤âƱ¤¸¸ú²Ì¤¬ÆÀ¤é¤ì¤ë¡£¥Ö¥é¥±¥Ã¥È¤ÎÆâÉô¤Ç¤Ï¡¢
-¤³¤ì¤é¤Îʸ»ú¤Ï¤½¤Îʸ»ú¼«¿È¤À¤±¤ò°ÕÌ£¤¹¤ë¡£
-¤¹¤Ê¤ï¤Á "\fI[[?*\e]\fP" ¤Ï \(aq[\(aq, \(aq?\(aq, \(aq*\(aq, \(aq\e\(aq
-¤Î¤É¤ì¤«°ìʸ»ú¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£
-.SS "¥Ñ¥¹Ì¾ (pathname)"
-glob Æ°ºî¤Ï¡¢¥Ñ¥¹Ì¾¤Î¤½¤ì¤¾¤ì¤ÎÉôʬ¤ËÆÈΩ¤ËŬÍѤµ¤ì¤ë¡£
-¥Ñ¥¹Ì¾¤Ë¸ºß¤¹¤ë \(aq/\(aq ¤Ï \(aq?\(aq ¤ä \(aq*\(aq ¥ï¥¤¥ë¥É¥«¡¼¥É¤Ë¤Ï¥Þ¥Ã¥Á¤·¤Ê¤¤¡£
-¤Þ¤¿ "\fI[.\-0]\fP" ¤Î¤è¤¦¤ÊÎΰè»ØÄê¤Ë¤â¥Þ¥Ã¥Á¤·¤Ê¤¤¡£
-Îΰè»ØÄê¤ÏÍۤˠ\(aq/\(aq Ê¸»ú¤ò´Þ¤à¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£¤³¤ì¤Ïʸˡ¥¨¥é¡¼¤È¤Ê¤ë¡£
+バックスラッシュ \(aq\e\(aq を前置すれば、 \(aq?\(aq, \(aq*\(aq, \(aq[\(aq は通常の文字として扱われる。
+またはシェルのコマンドラインの一部に指定する場合は、 クォートで囲っても同じ効果が得られる。ブラケットの内部では、
+これらの文字はその文字自身だけを意味する。 すなわち "\fI[[?*\e]\fP" は \(aq[\(aq, \(aq?\(aq, \(aq*\(aq,
+\(aq\e\(aq のどれか一文字にマッチする。
+.SS "パス名 (pathname)"
+glob 動作は、パス名のそれぞれの部分に独立に適用される。 パス名に存在する \(aq/\(aq は \(aq?\(aq や \(aq*\(aq
+ワイルドカードにはマッチしない。 また "\fI[.\-0]\fP" のような領域指定にもマッチしない。 領域指定は陽に \(aq/\(aq
+文字を含むことはできない。これは文法エラーとなる。
 
-\(aq.\(aq ¤Ç»Ï¤Þ¤ë¥Ñ¥¹Ì¾¤Ç¤Ï¡¢¤³¤Îʸ»ú¤ÏÍۤ˥ޥåÁ¤µ¤»¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-(¤Ä¤Þ¤ê \fIrm\ *\fP ¤Ï .profile ¤òºï½ü¤·¤Ê¤¤¡£¤Þ¤¿ \fItar\ c\ *\fP
-¤Ç¤Ï¤¹¤Ù¤Æ¤Î¥Õ¥¡¥¤¥ë¤Ï¥¢¡¼¥«¥¤¥Ö¤µ¤ì¤Ê¤¤¡£ \fItar\ c\ .\fP ¤ÎÊý¤¬Îɤ¤¡£)
-.SS ¶õ¤Î¥ê¥¹¥È
-Àè¤ËÍ¿¤¨¤¿¡¢¤ï¤«¤ê¤ä¤¹¤¯´Êñ¤Ê¥ë¡¼¥ë¡¢
-¡Ö¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ò¥Þ¥Ã¥Á¤·¤¿¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤ËŸ³«¤¹¤ë¡×¤È¸À¤¦¤Î¤Ï¡¢
-¥ª¥ê¥¸¥Ê¥ë¤Î Unix ¤Ë¤ª¤±¤ëÄêµÁ¤Ç¤¢¤Ã¤¿¡£
-¤³¤ì¤Ï¥Ñ¥¿¡¼¥ó¤¬¶õ¤Î¥ê¥¹¥È¤ËŸ³«¤µ¤ì¤ë¤³¤È¤âµö²Ä¤µ¤ì¤Æ¤¤¤¿¡£
-Î㤨¤Ð
+\(aq.\(aq で始まるパス名では、この文字は陽にマッチさせなければならない。 (つまり \fIrm\ *\fP は .profile を削除しない。また
+\fItar\ c\ *\fP ではすべてのファイルはアーカイブされない。 \fItar\ c\ .\fP の方が良い。)
+.SS 空のリスト
+先に与えた、わかりやすく簡単なルール、 「ワイルドカードパターンをマッチしたパス名のリストに展開する」と言うのは、 オリジナルの UNIX
+における定義であった。 これはパターンが空のリストに展開されることも許可されていた。 例えば
 .br
 .nf
     xv \-wait 0 *.gif *.jpg
 .fi
-¤Ë¤ª¤¤¤Æ¡¢*.gif ¥Õ¥¡¥¤¥ë¤¬Á´¤¯¤Ê¤¤¾ì¹ç¤Ç¤â¡¢
-¤³¤ì¤Ï¶õ¤Î¥ê¥¹¥È¤ËŸ³«¤µ¤ì¤ë¤¿¤á¡¢¥¨¥é¡¼¤Ë¤Ê¤é¤Ê¤¤¡£
-¤·¤«¤· POSIX ¤Ç¤Ï¡¢Ê¸Ë¡Åª¤ËÀµ¤·¤¯¤Ê¤¤¥Ñ¥¿¡¼¥ó¤ä¡¢
-¥Þ¥Ã¥Á¤¬¤Ê¤«¤Ã¤¿¥Ñ¥¿¡¼¥ó¤Ï¡¢
-¤½¤Î¤Þ¤ÞÊѹ¹¤µ¤ì¤º¤Ë»Ä¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-.I bash
-¤Ç¤Ï
-.I allow_null_glob_expansion=true
-¤ò»ØÄꤹ¤ë¤³¤È¤Ç¡¢°ÊÁ°¤Î¿¶¤ëÉñ¤¤¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+において、*.gif ファイルが全くない場合でも、 これは空のリストに展開されるため、エラーにならない。 しかし POSIX
+では、文法的に正しくないパターンや、 マッチがなかったパターンは、 そのまま変更されずに残されることになっている。 \fIbash\fP では
+\fIallow_null_glob_expansion=true\fP を指定することで、以前の振る舞いに設定することができる。
 
-(ƱÍͤÎÌäÂê¤ÏÊ̤ΤȤ³¤í¤Ç¤âµ¯¤³¤Ã¤Æ¤¤¤ë¡£Î㤨¤Ð¡¢¸Å¤¤¥¹¥¯¥ê¥×¥È¤Ë¤ª¤±¤ë
+(同様の問題は別のところでも起こっている。例えば、古いスクリプトにおける
 .br
 .nf
     rm \`find . \-name "*~"\`
 .fi
-¤Î¤è¤¦¤Êµ­½Ò¤Ï¡¢¿·¤·¤¤¥¹¥¯¥ê¥×¥È¤Ç¤Ï
+のような記述は、新しいスクリプトでは
 .br
 .nf
     rm \-f nosuchfile \`find . \-name "*~"\`
 .fi
-¤Î¤è¤¦¤Ë¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£¤µ¤â¤Ê¤¤¤È
-.I rm
-¤ò°ú¤­¿ô¥ê¥¹¥È¤Ê¤·¤Ç¸Æ¤Ó½Ð¤¹²ÄǽÀ­¤¬¤¢¤ê¡¢
-¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Æ¤·¤Þ¤¦¡£)
-.SH Ãí°Õ
-.SS Àµµ¬É½¸½
-¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ÏÀµµ¬É½¸½¤È¿¾¯»÷¤Æ¤¤¤ë¤¬¡¢¤·¤«¤·¤³¤Îξ¼Ô¤Ï°Û¤Ê¤ë¡£
-¤Þ¤ºÂè°ì¤Ë¡¢Á°¼Ô¤¬¥Õ¥¡¥¤¥ë̾¤Ë¥Þ¥Ã¥Á¤¹¤ë¤Î¤ËÂФ·¤Æ¡¢
-¸å¼Ô¤Ï¥Æ¥­¥¹¥È¤Ë¥Þ¥Ã¥Á¤¹¤ë¡£ÂèÆó¤Ë¡¢¥ë¡¼¥ë¤âƱ¤¸¤Ç¤Ï¤Ê¤¤¡£
-Î㤨¤ÐÀµµ¬É½¸½¤Ë¤ª¤±¤ë \(aq*\(aq ¤Ï¡¢
-Á°ÃÖ¤µ¤ì¤¿Ê¸»ú¤Î 0 °Ê¾å¤Î·«¤êÊÖ¤·¤òɽ¤¹¡£
+のようにしなければならない。さもないと \fIrm\fP を引き数リストなしで呼び出す可能性があり、 エラーメッセージが出てしまう。)
+.SH 注意
+.SS 正規表現
+ワイルドカードパターンは正規表現と多少似ているが、しかしこの両者は異なる。 まず第一に、前者がファイル名にマッチするのに対して、
+後者はテキストにマッチする。第二に、ルールも同じではない。 例えば正規表現における \(aq*\(aq は、 前置された文字の 0
+以上の繰り返しを表す。
 
-Àµµ¬É½¸½¤Ë¤â¥Ö¥é¥±¥Ã¥Èɽ¸½¤Ï¤¢¤ë¤¬¡¢ÈÝÄê¤Ï \(aq^\(aq ¤Ç¤Ê¤µ¤ì¤ë¡£
-POSIX ¤Ç¤Ï¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤Ë¤ª¤±¤ë "\fI[^...]\fP" ¤ò̤ÄêµÁ¤Ç¤¢¤ë¤È¤·¤Æ¤¤¤ë¡£
-.SS Ê¸»ú¥¯¥é¥¹¤È¹ñºÝ²½
-Îΰè»ØÄê¤Ï¡¢¤â¤È¤â¤È¤Ï¤â¤Á¤í¤ó ASCII ¤Ë¤ª¤±¤ë½ç½øʤӤò°ÕÌ£¤·¤Æ¤¤¤¿¡£
-¤·¤¿¤¬¤Ã¤Æ "\fI[\ \-%]\fP" ¤Ï "\fI[\ !"#$%]\fP" ¤Î°ÕÌ£¤Ç¤¢¤ê¡¢
-"\fI[a\-z]\fP" ¤Ï¡Ö¤¹¤Ù¤Æ¤Î¾®Ê¸»ú¡×¤Î°ÕÌ£¤Ç¤¢¤Ã¤¿¡£
-Unix ¤Î¼ÂÁõ¤ÎÃæ¤Ë¤Ï¡¢¤³¤ì¤ò³ÈÄ¥¤·¤¿¤â¤Î¤¬Â¸ºß¤·¡¢
-¤½¤³¤Ç¤Ï X\-Y ¤È¤¤¤¦Îΰè»ØÄê¤Ï¡¢X ¤Î¥³¡¼¥É¤È
-Y ¤Î¥³¡¼¥É¤Ë¶´¤Þ¤ì¤¿¥³¡¼¥É¤ò»ý¤Äʸ»ú¤¹¤Ù¤Æ¤òɽ¤¹¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤¿¡£
-¤·¤«¤·¡¢¤³¤ì¤Ë¤Ï¥æ¡¼¥¶¡¼¤¬¥í¡¼¥«¥ë¤Ê¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë
-ʸ»ú¥³¡¼¥É¤òÃΤé¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢
-¤µ¤é¤Ë¥í¡¼¥«¥ë¤Ê¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ËÂФ¹¤ë¾È¹ç½ç½ø
-(collating sequence) ¤¬Ê¸»ú¥³¡¼¥É¤Î½ç½ø¤È°Û¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤ÏÉÔÊؤǤ¢¤Ã¤¿¡£
-(ÌõÃí: collating sequence ¤Ë´Ø¤·¤Æ¤Ï
-.BR regex (7)
-¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£)
-¤·¤¿¤¬¤Ã¤Æ POSIX ¤Ç¤Ï¡¢¥ï¥¤¥ë¥É¥«¡¼¥É¥Ñ¥¿¡¼¥ó¤ÈÀµµ¬É½¸½¤ÎÁÐÊý¤Ë¤ª¤¤¤Æ¡¢
-¥Ö¥é¥±¥Ã¥Èɽµ­¤òÂçÉý¤Ë³ÈÄ¥¤·¤Æ¤¤¤ë¡£
-¤³¤ì¤Þ¤Ç²æ¡¹¤Ï¡¢¥Ö¥é¥±¥Ã¥Èɽµ­¤Ë¤Ï»°¤Ä¤ÎÍ×ÁǤ¬´Þ¤Þ¤ì¤¦¤ë¤³¤È¤ò¸«¤Æ¤­¤¿¡£
-¤¹¤Ê¤ï¤Á (i) ÈÝÄê¡¢(ii) Ã±°ì¤Îʸ»ú¡¢(iii) Îΰè»ØÄê¡¢¤Î»°¤Ä¤Ç¤¢¤ë¡£
-POSIX ¤Ç¤Ï¡¢Îΰè»ØÄê¤ò¤è¤ê¹ñºÝ²½¤ËÊØÍø¤Ê¤è¤¦¤ËÄêµÁ¤·¤Æ¤ª¤ê¡¢
-¤Þ¤¿»°¤Ä¤Î¥¿¥¤¥×¤ò¥Ö¥é¥±¥Ã¥Èɽµ­¤ÎÍ×ÁǤȤ·¤ÆÄɲ䷤Ƥ¤¤ë¡£
+正規表現にもブラケット表現はあるが、否定は \(aq^\(aq でなされる。 POSIX ではワイルドカードパターンにおける "\fI[^...]\fP"
+を未定義であるとしている。
+.SS 文字クラスと国際化
+領域指定は、もともとはもちろん ASCII における順序並びを意味していた。 したがって "\fI[\ \-%]\fP" は "\fI[\ !"#$%]\fP"
+の意味であり、 "\fI[a\-z]\fP" は「すべての小文字」の意味であった。 UNIX の実装の中には、これを拡張したものが存在し、 そこでは X\-Y
+という領域指定は、X のコードと Y のコードに挟まれたコードを持つ文字すべてを表すようになっていた。
+しかし、これにはユーザーがローカルなシステムにおける 文字コードを知らなければならず、 さらにローカルなアルファベットに対する照合順序
+(collating sequence) が文字コードの順序と異なっている場合には不便であった。 (訳注: collating sequence
+に関しては \fBregex\fP(7)  を参照して下さい。)  したがって POSIX では、ワイルドカードパターンと正規表現の双方において、
+ブラケット表記を大幅に拡張している。 これまで我々は、ブラケット表記には三つの要素が含まれうることを見てきた。 すなわち (i) 否定、(ii)
+単一の文字、(iii) 領域指定、の三つである。 POSIX では、領域指定をより国際化に便利なように定義しており、
+また三つのタイプをブラケット表記の要素として追加している。
 
-(iii) Îΰè»ØÄê X\-Y ¤Ï X ¤È Y ¤Ë¶´¤Þ¤ì¤¿ (ξü´Þ¤à) ¤¹¤Ù¤Æ¤Îʸ»ú¤ò°ÕÌ£¤¹¤ë¡£
-¤³¤Î¤È¤­¡¢¥«¥ì¥ó¥È¥í¥±¡¼¥ë (current locale) ¤Î
-.B LC_COLLATE
-¥«¥Æ¥´¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾È¹ç½ç½ø¤¬ÍѤ¤¤é¤ì¤ë¡£
+(iii) 領域指定 X\-Y は X と Y に挟まれた (両端含む) すべての文字を意味する。 このとき、カレントロケール (current
+locale) の \fBLC_COLLATE\fP カテゴリで定義されている照合順序が用いられる。
 
-(iv) Ì¾Á°ÉÕ¤­Ê¸»ú¥¯¥é¥¹: °Ê²¼¤Î¤è¤¦¤Ê¤â¤Î¤Ç¤¢¤ë¡£
+(iv) 名前付き文字クラス: 以下のようなものである。
 .nf
 
 [:alnum:]  [:alpha:]  [:blank:]  [:cntrl:]
@@ -182,30 +128,19 @@ POSIX 
 [:punct:]  [:space:]  [:upper:]  [:xdigit:]
 
 .fi
-¤³¤ì¤òÍѤ¤¤ì¤Ð "\fI[a\-z]\fP" ¤ÎÂå¤ï¤ê¤Ë "\fI[[:lower:]]\fP" ¤Î¤è¤¦¤Ê»ØÄ꤬¤Ç¤­¤ë¡£
-¤Þ¤¿¥Ç¥ó¥Þ¡¼¥¯¤Î¤è¤¦¤Ë¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤Î \(aqz\(aq °Ê¹ß¤Ë
-3 ¤Ä¤Îʸ»ú¤¬Â¸ºß¤¹¤ë¤è¤¦¤Ê¾ì¹ç¤Ç¤â¡¢Æ±¤¸¤è¤¦¤ÊÆ°ºî¤¬´üÂԤǤ­¤ë¡£
-¤³¤ì¤é¤Îʸ»ú¥¯¥é¥¹¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Î
-.B LC_CTYPE
-¥«¥Æ¥´¥ê¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
+これを用いれば "\fI[a\-z]\fP" の代わりに "\fI[[:lower:]]\fP" のような指定ができる。 またデンマークのように、アルファベットの
+\(aqz\(aq 以降に 3 つの文字が存在するような場合でも、同じような動作が期待できる。 これらの文字クラスはカレントロケールの
+\fBLC_CTYPE\fP カテゴリで定義されている。
 
-(v) ¾È¹ç½ç½ø¤Ë¤ª¤±¤ë¥·¥ó¥Ü¥ë: "\fI[.ch.]\fP" ¤ä "\fI[.a-acute.]\fP" ¤Î¤è¤¦¤Ë "\fI[.\fP"
-¤È "\fI.]\fP" ¤Ç¶´¤Þ¤ì¤¿Ê¸»úÎó¤Ï¡¢¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤¿¾È¹ç½ç½ø¤ÎÍ×ÁǤȤʤ롣
-¤¢¤ë°ì¤Ä¤ÎÍ×ÁǤ¬Ê£¿ô¤Îʸ»ú¤«¤é¤Ê¤ë¾ì¹ç¤â¤¢¤ê¤¦¤ë¤³¤È¤ËÃí°Õ¡£
+(v) 照合順序におけるシンボル: "\fI[.ch.]\fP" や "\fI[.a\-acute.]\fP" のように "\fI[.\fP" と "\fI.]\fP"
+で挟まれた文字列は、カレントロケールで定義された照合順序の要素となる。 ある一つの要素が複数の文字からなる場合もありうることに注意。
 
-(vi) Åù²Á¥¯¥é¥¹É½¸½ (equivalence class expressions): "\fI[=a=]\fP"
-¤Î¤è¤¦¤Ë "\fI[=\fP" ¤È "\fI=]\fP" ¤È¤Ç¶´¤Þ¤ì¤¿Ê¸»úÎó¤Ç¤¢¤ë¡£
-¤³¤ì¤ÏÅù²Á¥¯¥é¥¹¤Î¥á¥ó¥Ð¡¼¤Ç¤¢¤ë¾È¹ç½ç½ø¤ÎÍ×ÁǤ¹¤Ù¤Æ¤Ë¤Ê¤ë¡£
-Åù²Á¥¯¥é¥¹¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤â¤Î¤Ë¤Ê¤ë¡£
-Î㤨¤Ð¡¢"\fI[[=a=]]\fP" ¤Ï
-"\fI[a[.a\-acute.][.a\-grave.][.a\-umlaut.][.a\-circumflex.]]\fP"
-¤ÈÅù²Á¤Ç¤¢¤ë
-(Latin-1 É½µ­¤Ç¤Ï [a\e`{a}\e'{a}\e"{a}\e^{a}] ¤âƱ¤¸¡£
-[ÌõÃí] ÆüËܸì¤Î roff ¥Ú¡¼¥¸¤Ç¤Ï latin1 ¥³¡¼¥É¤¬½Ð¤Ê¤¤¤Î¤Ç¡¢
-¤³¤³¤Ç¤Ï TeX É½µ­¤Çµ­ºÜ)¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR sh (1),
-.BR fnmatch (3),
-.BR glob (3),
-.BR locale (7),
-.BR regex (7)
+.\" FIXME . the accented 'a' characters are not rendering properly
+.\" mtk May 2007
+(vi) 等価クラス表現 (equivalence class expressions):
+"\fI[=a=]\fP" のように "\fI[=\fP" と "\fI=]\fP" とで挟まれた文字列であり、
+カレントロケールで定義された等価クラスのメンバーである照合要素のいずれかを表す。
+例えば、"\fI[[=a=]]\fP" は "\fI[aáàäâ]\fP" (注意: これは Latin\-1 表記)、つまり
+"\fI[a[.a\-acute.][.a\-grave.][.a\-umlaut.][.a\-circumflex.]]\fP" と等価になる。
+.SH 関連項目
+\fBsh\fP(1), \fBfnmatch\fP(3), \fBglob\fP(3), \fBlocale\fP(7), \fBregex\fP(7)