File:  [Local Repository] / gnujdoc / grep-2.4.2 / grep-ja.texi
Revision 1.2: download - view: text, annotated - select for diffs
Sun Nov 24 11:30:15 2002 UTC (17 years, 11 months ago) by futoshi
Branches: MAIN
CVS tags: HEAD
Fix misunderstanded word for "Backword reference".

    1: \input texinfo  @c -*-texinfo-*-
    2: @c %**start of header
    3: @setfilename grep-ja.info
    4: @settitle grep, print lines matching a pattern
    5: @c %**end of header
    6: 
    7: @c @documentlanguage ja
    8: 
    9: @c This file has the new style title page commands.
   10: @c Run `makeinfo' rather than `texinfo-format-buffer'.
   11: 
   12: @c smallbook
   13: 
   14: @c tex
   15: @c \overfullrule=0pt
   16: @c end tex
   17: 
   18: @include grep-v.texi
   19: 
   20: @c Combine indices.
   21: @syncodeindex ky cp
   22: @syncodeindex pg cp
   23: @syncodeindex tp cp
   24: 
   25: @defcodeindex op
   26: @syncodeindex op fn
   27: @syncodeindex vr fn
   28: 
   29: @ifinfo
   30: @direntry
   31: * grep(ja): (grep-ja).              print lines matching a pattern.
   32: @end direntry
   33: This file documents @command{grep}, a pattern matching engine.
   34: 
   35: 
   36: Published by the Free Software Foundation,
   37: 59 Temple Place - Suite 330
   38: Boston, MA 02111-1307, USA
   39: 
   40: Copyright 2000 Free Software Foundation, Inc.
   41: 
   42: Permission is granted to make and distribute verbatim copies of
   43: this manual provided the copyright notice and this permission notice
   44: are preserved on all copies.
   45: 
   46: @ignore
   47: Permission is granted to process this file through TeX and print the
   48: results, provided the printed document carries copying permission
   49: notice identical to this one except for the removal of this paragraph
   50: (this paragraph not being relevant to the printed manual).
   51: 
   52: @end ignore
   53: Permission is granted to copy and distribute modified versions of this
   54: manual under the conditions for verbatim copying, provided that the entire
   55: resulting derived work is distributed under the terms of a permission
   56: notice identical to this one.
   57: 
   58: Permission is granted to copy and distribute translations of this manual
   59: into another language, under the above conditions for modified versions,
   60: except that this permission notice may be stated in a translation approved
   61: by the Foundation.
   62: @end ifinfo
   63: 
   64: @setchapternewpage off
   65: 
   66: @titlepage
   67: @title grep, searching for a pattern
   68: @subtitle version @value{VERSION}, @value{UPDATED}
   69: @author Alain Magloire et al.
   70: @c 翻訳 西尾 太
   71: 
   72: @page
   73: @vskip 0pt plus 1filll
   74: Copyright @copyright{} 2000 Free Software Foundation, Inc.
   75: 
   76: @sp 2
   77: Published by the Free Software Foundation, @*
   78: 59 Temple Place - Suite 330, @*
   79: Boston, MA 02111-1307, USA
   80: 
   81: Permission is granted to make and distribute verbatim copies of
   82: this manual provided the copyright notice and this permission notice
   83: are preserved on all copies.
   84: 
   85: Permission is granted to copy and distribute modified versions of this
   86: manual under the conditions for verbatim copying, provided that the entire
   87: resulting derived work is distributed under the terms of a permission
   88: notice identical to this one.
   89: 
   90: Permission is granted to copy and distribute translations of this manual
   91: into another language, under the above conditions for modified versions,
   92: except that this permission notice may be stated in a translation approved
   93: by the Foundation.
   94: 
   95: @end titlepage
   96: @page
   97: 
   98: 
   99: @c @ifnottex
  100: @ifinfo
  101: @node Top
  102: @top Grep
  103: 
  104: @command{grep}は,パターンに一致する行を探します.
  105: 
  106: このドキュメントは,@sc{gnu} @command{grep}の,バージョン@value{VERSION}
  107: に対して作成されました.
  108: @c @end ifnottex
  109: @end ifinfo
  110: 
  111: @menu
  112: * Introduction::                Introduction.
  113: * Invoking::                    Invoking @command{grep}; description of options.
  114: * Diagnostics::                 Exit status returned by @command{grep}.
  115: * Grep Programs::               @command{grep} programs.
  116: * Regular Expressions::         Regular Expressions.
  117: * Usage::                       Examples.
  118: * Reporting Bugs::              Reporting Bugs.
  119: * Concept Index::               A menu with all the topics in this manual.
  120: * Index::                       A menu with all @command{grep} commands
  121:                                  and command-line options.
  122: @end menu
  123: 
  124: 
  125: @node Introduction
  126: @chapter はじめに
  127: 
  128: @cindex Searching for a pattern.
  129: 
  130: @command{grep}は,与えられたパターンリストに一致するものを含む行を,入力
  131: ファイルで検索します.行の中に一致しているものが見つかるとき,(デフォル
  132: トで)標準出力,または,オプションで要求したあらゆる他の出力にコピーしま
  133: す.
  134: 
  135: @command{grep}は,テキストでの一致を期待しますが,利用可能なメモリ以外に
  136: 入力行の長さの制限はなく,行の任意の文字に一致可能です.入力ファイルの最
  137: 後のバイトが改行では無い場合,@command{grep}は暗黙にそれを付加します.改
  138: 行は,パターンリストのセパレータでもあるので,テキストの改行文字に一致す
  139: る方法はありません。
  140: 
  141: @node Invoking
  142: @chapter @command{grep}の呼び出し
  143: 
  144: @command{grep}は,@sc{posix.2}と@sc{gnu}の拡張の,豊富なオプションセット
  145: を持っています.
  146: 
  147: @table @samp
  148: 
  149: @item -c
  150: @itemx --count
  151: @opindex -c
  152: @opindex -count
  153: @cindex counting lines
  154: 標準的な出力を抑制します.代わりに,それぞれの入力ファイルに対し,一致し
  155: た行数を出力します.@samp{-v},@samp{--revert-match}オプションと併用した
  156: 場合,一致しない行を数えます.
  157: 
  158: @item -e @var{pattern}
  159: @itemx --regexp=@var{pattern}
  160: @opindex -e
  161: @opindex --regexp=@var{pattern}
  162: @cindex pattern list
  163: @var{pattern}をパターンとして使います.@samp{-}で始まるパターンの保護に
  164: 役立ちます.
  165: 
  166: @item -f @var{file}
  167: @itemx --file=@var{file}
  168: @opindex -f
  169: @opindex --file
  170: @cindex pattern from file
  171: 1行毎に,@var{file}からパターンを得ます.空のファイルは,0個のパターンを
  172: 含むので,何にも一致しません.
  173: 
  174: @item -i
  175: @itemx --ignore-case
  176: @opindex -i
  177: @opindex --ignore-case
  178: @cindex case insensitive search
  179: パターンと入力ファイルの両方で,大文字小文字の違いを無視します.
  180: 
  181: @item -l
  182: @itemx --files-with-matches
  183: @opindex -l
  184: @opindex --files-with-matches
  185: @cindex names of matching files
  186: 標準的な出力を抑制します.通常出力されている,それぞれの入力ファイルの名
  187: 前を,代わりに出力します.全てのファイルの走査は,最初に一致すると停止し
  188: ます.
  189: 
  190: @item -n
  191: @itemx --line-number
  192: @opindex -n
  193: @opindex --line-number
  194: @cindex line numbering
  195: 入力ファイルの行番号を,それぞれの出力行の前に置きます.
  196: 
  197: @item -q
  198: @itemx --quiet
  199: @itemx --silent
  200: @opindex -q
  201: @opindex --quiet
  202: @opindex --silent
  203: @cindex quiet, silent
  204: 静かを意味します.通常の出力を抑制します.全てのファイルのスキャンは,最
  205: 初に一致すると停止します.@samp{-s}や@samp{--no-messages}オプションも参
  206: 照してください.
  207: 
  208: @item -s
  209: @itemx --no-messages
  210: @opindex -s
  211: @opindex --no-messages
  212: @cindex suppress error messages
  213: 存在しない,あるいは読み込みできないファイルについての,エラーメッセージ
  214: を抑制します.移植性のメモ: 伝統的な@command{grep}は,@samp{-q}オプショ
  215: ンが無く,@samp{-s}オプションは,@sc{gnu} @command{grep}の@samp{-q}オプ
  216: ションのように動作するので,伝統的な@command{grep}は,@sc{gnu}
  217: @command{grep}と異なり,@sc{posix.2}準拠ではありません.伝統的な
  218: @command{grep}との移植性を考慮するシェルスクリプトは,@samp{-q}と
  219: @samp{-s}を避け,代わりに@file{/dev/null}に,出力をリダイレクトするべき
  220: です.
  221: 
  222: @item -v
  223: @itemx --invert-match
  224: @opindex -v
  225: @opindex --invert-match
  226: @cindex invert matching
  227: @cindex print non-matching lines
  228: 一致するという意味を反転し,一致しない行を選択します.
  229: 
  230: @item -x
  231: @itemx --line-regexp
  232: @opindex -x
  233: @opindex --line-regexp
  234: @cindex match the whole line
  235: 正確に行全体が一致したもののみを選択します.
  236: 
  237: @end table
  238: 
  239: @section @sc{gnu}の拡張
  240: 
  241: @table @samp
  242: 
  243: @item -A @var{num}
  244: @itemx --after-context=@var{num}
  245: @opindex -A
  246: @opindex --after-context
  247: @cindex after context
  248: @cindex context lines, after match
  249: 一致した行の後に,後ろの文脈を@var{num}行出力します.
  250: 
  251: @item -B @var{num}
  252: @itemx --before-context=@var{num}
  253: @opindex -B
  254: @opindex --before-context
  255: @cindex before context
  256: @cindex context lines, before match
  257: 一致した行の前に,前の文脈を@var{num}行出力します.
  258: 
  259: @item -C @var{num}
  260: @itemx --context=[@var{num}]
  261: @opindex -C
  262: @opindex --context
  263: @cindex context
  264: 出力文脈の前後の(デフォルトで2)行を出力します.
  265: 
  266: @item -@var{num}
  267: @opindex -NUM
  268: @samp{--context=@var{num}}と同様に,前後の行を出力します.しかし,
  269: @command{grep}は,与えられた行を,一度以上出力しません.
  270: 
  271: @item -V
  272: @itemx --version
  273: @opindex -V
  274: @opindex --version
  275: @cindex Version, printing
  276: @command{grep}のバージョンナンバーを標準出力に出力します.このバージョン
  277: ナンバーをすべてのバグレポートに含めてください.
  278: 
  279: @item --help
  280: @opindex --help
  281: @cindex Usage summary, printing
  282: これらのコマンドラインオプションの概要の簡単な使用法メッセージと,バグレ
  283: ポートのアドレスを出力して終了します.
  284: 
  285: @itemx --binary-files=@var{type}
  286: @opindex --binary-files
  287: @cindex binary files
  288: ファイルの最初の数バイトで,ファイルがバイナリデータを含むことを示してい
  289: る場合,ファイルの形式が@var{type}であると考えます.デフォルトで,
  290: @var{type}は@samp{binary}で,@command{grep}は通常,バイナリファイルが一
  291: 致したことを告げる1行のメッセージの出力する,または,一致しない場合はな
  292: にもメッセージを出力しないのどちらかです.@var{type}が
  293: @samp{without-match}の場合,@command{grep}はバイナリファイルは一致しない
  294: と考えます.これは@samp{-I}オプションと同じです.@var{type}が@samp{text} 
  295: の場合,@command{grep}はバイナリファイルをテキストであるかのように処理し
  296: ます.これは@samp{-a}オプションと同じです.@emph{警告:}
  297: @samp{--binary-files=text}は,端末に出力されるバイナリのゴミを出力する可
  298: 能性があり,出力が端末で,且つ端末ドライバがそれをコマンドとして解釈した
  299: 場合,それは厄介な副作用となるはずです.
  300: 
  301: @item -b
  302: @itemx --byte-offset
  303: @opindex -b
  304: @opindex --byte-offset
  305: @cindex byte offset
  306: それぞれの出力行の前に,入力ファイルのバイトオフセットを出力します.
  307: @sc{ms-dos}やMS-Windowsで@command{grep}を実行するときは,
  308: @samp{-u}(@samp{--unix-byte-offsets})オプションが使われているかどうかに
  309: 依存して,バイトオフセットを出力します.以下を参照してください.
  310: 
  311: @item -d @var{action}
  312: @itemx --directories=@var{action}
  313: @opindex -d
  314: @opindex --directories
  315: @cindex directory search
  316: 入力ファイルがディレクトリの場合,それを処理するために,@var{action}を使
  317: います.デフォルトで@var{action}は@samp{read}で,それは,ディレクトリが
  318: 普通のファイルであるかのように読まれることを意味します(オペレーティング
  319: システムとファイルシステムによってはこれができないものもあり,
  320: @command{grep}は全てのディレクトリに対しエラーメッセージを出力します).
  321: @var{action}が@samp{skip}の場合,ディレクトリは暗黙にスキップされます.
  322: @var{action}が@samp{recurse}の場合,@command{grep}はそれぞれのディレクト
  323: リ下の全てのファイルを再帰的に読み込みます.これは,@samp{-r}オプション
  324: と同じです.
  325: 
  326: @item -H
  327: @itemx --with-filename
  328: @opindex -H
  329: @opindex --With-filename
  330: @cindex with filename prefix
  331: それぞれの一致に対し,ファイル名を出力します.
  332: 
  333: @item -h
  334: @itemx --no-filename
  335: @opindex -h
  336: @opindex --no-filename
  337: @cindex no filename prefix
  338: 複数のファイルが検索されているとき,出力の前のファイル名を抑制します.
  339: 
  340: @item -L
  341: @itemx --files-without-match
  342: @opindex -L
  343: @opindex --files-without-match
  344: @cindex files which don't match
  345: 標準的な出力を抑制します.通常,出力されないそれぞれの入力ファイル名
  346: @footnote{訳注:一致する行を含まないファイルという意味.}を,代わりに出力
  347: します.全てのファイルのスキャンは,最初に一致すると停止します.
  348: 
  349: @item -a
  350: @itemx --text
  351: @opindex -a
  352: @opindex --text
  353: @cindex suppress binary data
  354: @cindex binary files
  355: バイナリファイルをテキストファイルであるかのように処理します.これは,
  356: @samp{--binary-files=text}オプションと同じです.
  357: 
  358: @item -I
  359: バイナリファイルを,一致データを含まないものとして処理します.これは
  360: @samp{--binary-files=without-match}オプションと同じです.
  361: 
  362: @item -w
  363: @itemx --word-regexp
  364: @opindex -w
  365: @opindex --word-regexp
  366: @cindex matching whole words
  367: 単語全体が一致しているものを含む行のみを選択します.一致しているサブ文字
  368: 列が,行の最初,または,単語を構成しない文字が前にあるかのどうかを調べま
  369: す.同様に,行の最後,または,単語を構成しない文字が後に続くかどうかを調
  370: べます.単語を構成する文字は,文字,数字と,アンダースコアです.
  371: 
  372: @item -r
  373: @itemx --recursive
  374: @opindex -r
  375: @opindex --recursive
  376: @cindex recursive search
  377: @cindex searching directory trees
  378: コマンド行にあるそれぞれのディレクトリに対し,そのディレクトリの全てのファ
  379: イルを再帰的に読み込み処理します.これは,@samp{-d recurse}オプションと
  380: 同じです.
  381: 
  382: @item -y
  383: @opindex -y
  384: @cindex case insensitive search, obsolete option
  385: @samp{-i}に対する時代遅れの同義語です.
  386: 
  387: @item -U
  388: @itemx --binary
  389: @opindex -U
  390: @opindex --binary
  391: @cindex DOS/Windows binary files
  392: @cindex binary files, DOS/Windows
  393: ファイルをバイナリとして扱います.デフォルトで,@sc{ms-dos}とMS-Windows 
  394: では,@command{grep}は,ファイルから読み込んだ最初の32kBの内容を見てファ
  395: イル形式を推測します.@command{grep}が,ファイルをテキストファイルだと決
  396: 定した場合,元ファイルの内容から@code{CR}文字を取ります(@code{^}と
  397: @code{$}を使った正規表現が正確に働くためです).@samp{-U}で指定してこの推
  398: 測を覆す場合,全てのファイルは読み込まれ,逐語的に一致検索する方式に渡さ
  399: れ,ファイルのそれぞれの行の終りが@code{CR/LF}の組のテキストファイルの場
  400: 合,失敗する正規表現も出てきます.このオプションは,@sc{ms-dos}と
  401: MS-Windowsのみでサポートされています.
  402: 
  403: @item -u
  404: @itemx --unix-byte-offsets
  405: @opindex -u
  406: @opindex --unix-byte-offsets
  407: @cindex DOS byte offsets
  408: @cindex byte offsets, on DOS/Windows
  409: Unix形式のバイトオフセットを報告します.これで@command{grep}は,ファイル
  410: があたかもUnixスタイルのファイルであるかのように,バイトオフセットを報告
  411: するよう切替えます.すなわち,バイトオフセットは,取り除かれた@code{CR} 
  412: 文字を無視します.これは,Unixマシンで@command{grep}を実行するのと同じ結
  413: 果を生成します.このオプションは,@samp{-b}オプションと一緒に使用しない
  414: 限り効果がありません.@sc{ms-dos}とMS-Windows以外のプラットホームでは効
  415: 果がありません.
  416: 
  417: @item --mmap
  418: @opindex --mmap
  419: @cindex memory mapped input
  420: 可能な場合,入力を読む際,デフォルトの@code{read}システムコールの代わり
  421: に,@code{mmap}システムコールを使用します.@samp{--mmap}が,良いパフォー
  422: マンスを与える場合もあります.しかし,@command{grep}処理中に入力ファイル
  423: が小さくなる場合や,I/Oエラーが生じた場合,@samp{--mmap}は,(coreの吐き
  424: 出しを含め)未定義の動作をすることもあります.
  425: 
  426: @item -Z
  427: @itemx --null
  428: @opindex -Z
  429: @opindex --null
  430: @cindex zero-terminated file names
  431: 通常ファイル名に続く文字の代わりに,0バイト(@sc{ascii}の@code{NUL}文字) 
  432: を出力します.例えば,@samp{grep -lZ}は,それぞれのファイル名の後,通常
  433: の改行の代わりに,0バイトを出力します.このオプションは,ファイル名が改
  434: 行のような普通でない文字を含む場合でも出力を曖昧にしません.このオプショ
  435: ンは,改行文字を含むような任意のファイル名を処理するとき使用する,
  436: @samp{find -print0},@samp{perl -0},@samp{sort -z}と@samp{xargs -0}のよ
  437: うなコマンドとともに使用されます.
  438: 
  439: @item -z
  440: @itemx --null-data
  441: @opindex -z
  442: @opindex --null-data
  443: @cindex zero-terminated lines
  444: それぞれの行は,改行の代わりに0バイト(@sc{ascii}の@code{NUL}文字)で終端
  445: され,入力を1行として扱います.@samp{-Z}や@samp{--null}オプションのよう
  446: に,このオプションは,任意のファイル名を処理する際の@samp{sort -z}のよう
  447: なコマンドとともに使用されます.
  448: 
  449: @end table
  450: 
  451: @command{grep}一致エンジンの変形を使用するかどうかを制御する,追加のオ
  452: プションもあります.@xref{Grep Programs}.
  453: 
  454: @section 環境変数
  455: 
  456: @command{grep}の動作は,以下の環境変数に影響されます.
  457: 
  458: @cindex environment variables
  459: 
  460: @table @code
  461: 
  462: @item GREP_OPTIONS
  463: @vindex GREP_OPTIONS
  464: @cindex default options environment variable
  465: この変数は,あらゆる明確なオプションの前に置く,デフォルトオプションを指
  466: 定します.例えば,@code{GREP_OPTIONS}が
  467: @samp{--binary-files=without-match --directories=skip} の場合,
  468: @command{grep}は,2つのオプション@samp{--binary-files=without-match}と
  469: @samp{--directories=skip}が,明確なオプションの前に指定されているように
  470: 動作します.オプション指定は,空白で分割します.バックスラッシュは次の文
  471: 字をエスケープするので,空白やバックスラッシュを含むオプションを指定する
  472: とき使用することができます.
  473: 
  474: @item LC_ALL
  475: @itemx LC_MESSAGES
  476: @itemx LANG
  477: @vindex LC_ALL
  478: @vindex LC_MESSAGES
  479: @vindex LANG
  480: @cindex language of messages
  481: @cindex message language
  482: @cindex national language support
  483: @cindex NLS
  484: @cindex translation of message language
  485: これらの変数は@code{LC_MESSAGES}ロケールを指定し,それは,@command{grep} 
  486: がメッセージで使用する言語を決定します.ロケールは,設定されたこれらの変
  487: 数で最初に決定されます.これらの環境変数が設定されていない場合や,メッセー
  488: ジカタログがインストールされていない場合や,@command{grep}が国際言語サポー
  489: ト(@sc{nls})でコンパイルされていない場合,アメリカ英語が使用されます.
  490: 
  491: @item LC_ALL
  492: @itemx LC_CTYPE
  493: @itemx LANG
  494: @vindex LC_ALL
  495: @vindex LC_CTYPE
  496: @vindex LANG
  497: @cindex character type
  498: @cindex national language support
  499: @cindex NLS
  500: これらの変数は@code{LC_CTYPE}ロケールを指定し,それは例えば,どの文字が
  501: 空白となるかといった,文字の型を決定します.ロケールは,設定されたこれら
  502: の変数で最初に決定されます.これらの環境変数が設定されていない場合や,ロ
  503: ケールカタログがインストールされていない場合や,@command{grep}が国際言語
  504: サポート(@sc{nls})でコンパイルされていない場合,@sc{posix}ロケールが使用
  505: されます.
  506: 
  507: @item POSIXLY_CORRECT
  508: @vindex POSIXLY_CORRECT
  509: 設定されている場合,@command{grep}は,@sc{posix.2}で要求されているように
  510: 動作します.そうでない場合,@command{grep}は,他の@sc{gnu}プログラムのよ
  511: うに動作します.@sc{posix.2}は,ファイル名が続くオプションは,ファイル名
  512: として扱う必要があると要求します.デフォルトで,そのようなオプションは,
  513: オペランドリストの前に順序を変え,オプションとして扱われます.また,
  514: @sc{posix.2}は,理解できなかったオプションを「不正」と診断することも要求
  515: しますが,本当に規則に反しているわけではないので,デフォルトでは「無効」
  516: と診断されます.@code{POSIXLY_CORRECT}は,以下で述べる
  517: @code{_@var{N}_GNU_nonoption_argv_flags_}も使用できないようにします.
  518: 
  519: @item _@var{N}_GNU_nonoption_argv_flags_
  520: @vindex _@var{N}_GNU_nonoption_argv_flags_
  521: (ここで,@code{@var{N}}は,@command{grep}のプロセスID番号です.)この環境
  522: 変数の値の@var{i}番目の文字が@samp{1}の場合,@command{grep}の@var{i}番目
  523: のオペランドは,明らかにそうであってもオプションと考えません.シェルは,
  524: 実行するそれぞれのコマンドに対し,この変数を環境に置くことができ,それを
  525: 指定すると,オペランドはワイルドカードを展開したファイル名の結果となり,
  526: そのため,オプションとして扱われません.この動作は,@sc{gnu}Cライブラリ
  527: のみで,@code{POSIXLY_CORRECT}がセットされていないときのみ利用可能です.
  528: 
  529: @end table
  530: 
  531: @node Diagnostics
  532: @chapter 診断
  533: 
  534: 通常,一致したものが見つかった場合,終了ステータスは0で,一致したものが
  535: 見つからない場合,1です(@samp{-v}オプションは,終了ステータスの意味が反
  536: 転します).パターン内の構文エラーや,アクセスできない入力ファイルや,他
  537: のシステムエラーがある場合,終了ステータスは2です.
  538: 
  539: @node Grep Programs
  540: @chapter @command{grep}プログラム
  541: 
  542: @command{grep}は,指名された入力ファイル(または,ファイルが指名されない
  543: 場合や,@file{-}という名前のファイルが与えられた場合は標準入力)で,与え
  544: られたパターンに一致したものを含む行を探します.デフォルトで,
  545: @command{grep}は一致した行を出力します.3つの主要な@command{grep}の変形
  546: があり,以下のオプションで制御されます.
  547: 
  548: @table @samp
  549: 
  550: @item -G
  551: @itemx --basic-regexp
  552: @opindex -G
  553: @opindex --basic-regexp
  554: @cindex matching basic regular expressions
  555: 基本的な正規表現としてパターンを解釈します.これはデフォルトです.
  556: 
  557: @item -E
  558: @itemx --extended-regexp
  559: @opindex -E
  560: @opindex --extended-regexp
  561: @cindex matching extended regular expressions
  562: 拡張された正規表現として,パターンを解釈します.
  563: 
  564: @item -F
  565: @itemx --fixed-strings
  566: @opindex -F
  567: @opindex --fixed-strings
  568: @cindex matching fixed strings
  569: 改行で分けられた固定文字列のリストとしてパターンを解釈し,それはどれにで
  570: も一致します.
  571: 
  572: @end table
  573: 
  574: さらに,2つの変形プログラム,@command{egrep}と@command{fgrep}が利用可能
  575: です. @command{egrep}は,@samp{grep -E}と同じです.@command{fgrep}は,
  576: @samp{grep -F}と同じです.
  577: 
  578: @node Regular Expressions
  579: @chapter 正規表現
  580: @cindex regular expressions
  581: 
  582: @dfn{正規表現}は,文字列のセットを記述するパターンです.正規表現は,より
  583: 小さな表現を統合する,様々なオペレータを使った算数的な表現で,同様に組み
  584: 立てられます.@command{grep}は,2つの異なるバージョンの正規表現構文,`` 
  585: 基本''と``拡張''を理解します.@sc{gnu} @command{grep}では,どちらの構文
  586: を使っても,利用可能な機能に違いはありません.他のインプリメンテーション
  587: では,基本正規表現はそんなに強力ではありません.以下の記述は,拡張正規表
  588: 現に当てはまります.基本正規表現との違いは,後で要約します.
  589: 
  590: 基本的な構築ブロックは,一文字に一致する正規表現です.すべての文字と数字
  591: を含むほとんどの文字は,自分自身に一致する正規表現です.特殊な意味を持つ
  592: あらゆるメタ文字は,バックスラッシュを前に置くことで引用可能です.
  593: @samp{[}と@samp{]}で囲まれた文字のリストは,リストのあらゆる一文字と一致
  594: します.リストの最初の文字がキャレット@samp{^}の場合,リストに
  595: @strong{ない}あらゆる文字に一致します.例えば,正規表現
  596: @samp{[0123456789]}は,あらゆる数字に一致します.文字の範囲は,ハイフン
  597: で分けられた,最初と最後の文字を与えることで指定できます.
  598: 
  599: 終りに,文字の命名されたクラスは,以下のように前もって定義されています.
  600: その解釈は@code{LC_CTYPE}ロケールに依存します.以下の解釈は@sc{posix} ロ
  601: ケールのもので,@code{LC_CTYPE}ロケールがない場合,デフォルトとなります.
  602: 
  603: @cindex classes of characters
  604: @cindex character classes
  605: @table @samp
  606: 
  607: @item [:alnum:]
  608: @opindex alnum
  609: @cindex alphanumeric characters
  610: 英数文字: @samp{[:alpha:]}と@samp{[:digit:]}.
  611: 
  612: @item [:alpha:]
  613: @opindex alpha
  614: @cindex alphabetic characters
  615: アルファベット文字: @samp{[:lower:]}と@samp{[:upper:]}.
  616: 
  617: @item [:blank:]
  618: @opindex blank
  619: @cindex blank characters
  620: 空白文字: スペースとタブ.
  621: 
  622: @item [:cntrl:]
  623: @opindex cntrl
  624: @cindex control characters
  625: コントロール文字.@sc{ascii}では,これらの文字は8進数コードで,000から
  626: 037までと177 (@code{DEL})です.その他の文字セットでは,それが何であれ,
  627: 文字と同じです.
  628: 
  629: @item [:digit:]
  630: @opindex digit
  631: @cindex digit characters
  632: @cindex numeric characters
  633: 数字: @code{0 1 2 3 4 5 6 7 8 9}.
  634: 
  635: @item [:graph:]
  636: @opindex graph
  637: @cindex graphic characters
  638: グラフィック文字: @samp{[:alnum:]}と@samp{[:punct:]}.
  639: 
  640: @item [:lower:]
  641: @opindex lower
  642: @cindex lower-case letters
  643: 小文字:@code{a b c d e f g h i j k l m n o p q r s t u v w x y z}.
  644: 
  645: @item [:print:]
  646: @opindex print
  647: @cindex printable characters
  648: Printable characters:
  649: 印刷可能な文字: @samp{[:alnum:]},@samp{[:punct:]},そしてスペース.
  650: 
  651: @item [:punct:]
  652: @opindex punct
  653: @cindex punctuation characters
  654: 句読点文字:@code{!@: " # $ % & ' ( ) * + , - .@: / : ; < = > ?@: @@ [ \
  655: ] ^ _ ` @{ | @} ~}.
  656: 
  657: @item [:space:]
  658: @opindex space
  659: @cindex space characters
  660: @cindex whitespace characters
  661: スペース文字: タブ,改行,垂直タブ,フォームフィード,キャリッジリター
  662: ン,そしてスペース.
  663: 
  664: @item [:upper:]
  665: @opindex upper
  666: @cindex upper-case letters
  667: 大文字: @code{A B C D E F G H I J K L M N O P Q R S T U V W X Y Z}.
  668: 
  669: @item [:xdigit:]
  670: @opindex xdigit
  671: @cindex xdigit class
  672: @cindex hexadecimal digits
  673: 16進数: @code{0 1 2 3 4 5 6 7 8 9 A B C D E F a b c d e f}.
  674: 
  675: @end table
  676: 例えば,@samp{[[:alnum:]]}は@samp{[0-9A-Za-z]}を意味しますが,後者の書式
  677: は,@sc{posix}ロケールと@sc{ascii}文字の符号化に依存し,前者はロケールと
  678: 文字セットに依存しません.(これらのクラス名のカッコはジンボル名の一部で,
  679: 追加時には,カッコのリストを範囲を定めるカッコを含める必要があることに注
  680: 意してください).ほとんどのメタ文字は,リスト内で特殊な意味を失います.
  681: リテラル@samp{]}を含めるため,それをリストの最初に置いてください.同様に,
  682: リテラル@samp{^}を含めるため,最初以外の場所に置いてください.終りに,リ
  683: テラル@samp{-}を含めるため,最後に置いてください.
  684: 
  685: ピリオド@samp{.}はあらゆる一文字に一致します.シンボル@samp{\w}は
  686: @samp{[[:alnum:]]}の同義語で,@samp{\W}は@samp{[^[:alnum]]}の同義語です.
  687: 
  688: キャレット@samp{^}と ドル記号@samp{$}は,それぞれ,行の最初と最後の空の
  689: 文字列に一致するメタ文字です.シンボル@samp{\<}と@samp{\>}は,それぞれ,
  690: 単語の最初と最後の空の文字列に一致します.@samp{\b}は,単語の端の空の文
  691: 字列に一致し,@samp{\B}は,単語の端ではない,空の文字列に一致します.
  692: 
  693: 正規表現は,繰り返しオペレーターの1つを続けることができます.
  694: 
  695: @table @samp
  696: 
  697: @item ?
  698: @opindex ?
  699: @cindex question mark
  700: @cindex match sub-expression at most once
  701: 前のアイテムはオプションで,1回以下に一致します.
  702: 
  703: @item *
  704: @opindex *
  705: @cindex asterisk
  706: @cindex match sub-expression zero or more times
  707: 前のアイテムの0回以上に一致します.
  708: 
  709: @item +
  710: @opindex +
  711: @cindex plus sign
  712: 前のアイテムの1回以上に一致します.
  713: 
  714: @item @{@var{n}@}
  715: @opindex @{n@}
  716: @cindex braces, one argument
  717: @cindex match sub-expression n times
  718: 前のアイテムの,正確に@var{n}回に一致します.
  719: 
  720: @item @{@var{n},@}
  721: @opindex @{n,@}
  722: @cindex braces, second argument omitted
  723: @cindex match sub-expression n or more times
  724: 前のアイテムのn回以上に一致します.
  725: 
  726: @item @{@var{n},@var{m}@}
  727: @opindex @{n,m@}
  728: @cindex braces, two arguments
  729: 前のアイテムの,最低@var{n}回以上,@var{m}回以下に一致します.
  730: 
  731: @end table
  732: 
  733: 2つの正規表現は連結できます.その結果の正規表現は,それぞれ連結されたサ
  734: ブ表現に一致する,2つのサブ文字列を連結した形式の,あらゆる文字列に一致
  735: します.
  736: 
  737: 2つの正規表現は,インフィクスオペレータ@samp{|}で連結することができます.
  738: その結果の正規表現は,サブ表現のどちらかに一致する,あらゆる文字列に一致
  739: します.
  740: 
  741: 繰り返しは連結に優先し,それは交互に優先されます.これらの優先規則に優
  742: 先させるため,サブ表現全体を丸カッコで囲むことができます.
  743: 
  744: 後方参照@samp{\@var{n}}は,@var{n}が一桁の場合,丸カッコで囲われている正
  745: 規表現のサブ表現を,前で@var{n}番目に一致した,サブ文字列に一致します
  746: @footnote{訳注:JMでの例は,「`su(momo)mo\1mo\1nouti'は,
  747: `sumomomomomomomomonouti'に一致します」となっています}.
  748: 
  749: @cindex basic regular expressions
  750: 基本的な正規表現で,メタ文字@samp{?},@samp{+},@samp{@{}, @samp{|},
  751: @samp{(}と,@samp{)}は,特別な意味を失います.代わりに,バックスラッシュ
  752: バージョンの@samp{\?},@samp{\+},@samp{\@{}, @samp{\|},@samp{\(}と,
  753: @samp{\)}を使ってください.
  754: 
  755: @cindex interval specifications
  756: 伝統的な@command{egrep}は,メタ文字@samp{@{}をサポートしておらず,
  757: @samp{\@{}をサポートする@command{egrep}のインプリメントもあります.その
  758: ため,移植可能なスクリプトでは,@samp{egrep}のパターンで@samp{@{}を避け,
  759: リテラル@samp{@{}に一致する@samp{[@{]}を使うべきです.
  760: 
  761: @sc{gnu} @command{egrep}は,無効な間隔の指定で始まる場合,@samp{@{}は特
  762: 別でないものとして,伝統的な使用のサポートを試みます.例えば,シェルコマ
  763: ンド@samp{egrep '@{1'}は,正規表現の構文エラーを報告する代わりに,2文字
  764: の文字列@samp{@{1}を検索します.@sc{posix.2}は,拡張としてのこの動作を許
  765: 可しますが,移植可能なスクリプトでは避けるべきです.
  766: 
  767: @node Usage
  768: @chapter 使用法
  769: 
  770: @cindex Usage, examples
  771: ここに,@sc{gnu} @command{grep}を呼び出す,シェルコマンドの例があります.
  772: 
  773: @example
  774: grep -i 'hello.*world' menu.h main.c
  775: @end example
  776: 
  777: @noindent
  778: これは,@file{menu.h}と@file{main.c}で,文字列@samp{world}が続く文字列
  779: @samp{hello}を含む,全ての行をリストアップします.これは,@samp{.*}が,
  780: 行の0以上の文字に一致するためです.@xref{Regular Expressions}.
  781: @samp{-i}オプションは,@command{grep}に大文字小文字を無視させ,
  782: @samp{Hello, world!}に一致させます.そうしなければ一致しません.
  783: @command{grep}の呼び出し方の詳細は,@xref{Invoking}.
  784: 
  785: @cindex Using @command{grep}, Q&A
  786: @cindex FAQ about @command{grep} usage
  787: ここに,@command{grep}の使用法に関する,共通の質問と回答があります.
  788: 
  789: @enumerate
  790: 
  791: @item
  792: 一致したファイルの名前のみリストアップするには,どうしたら良いのですか?
  793: 
  794: @example
  795: grep -l 'main' *.c
  796: @end example 
  797: 
  798: @noindent
  799: カレントディレクトリで,内容に@samp{main}があるCファイルの名前をリストアッ
  800: プします.
  801: 
  802: @item
  803: ディレクトリを再帰的に検索するには,どうしたら良いのですか?
  804: 
  805: @example
  806: grep -r 'hello' /home/gigi
  807: @end example
  808: 
  809: @noindent
  810: @samp{hello}を,ディレクトリ@file{/home/gigi}の下の,全てのファイルで検
  811: 索します.検索ファイルをもっと制御するために,@command{find},
  812: @command{grep}と,@command{xargs}を使ってください.例えば,以下のコマン
  813: ドはCファイルのみを検索します.
  814: 
  815: @smallexample
  816: find /home/gigi -name '*.c' -print | xargs grep 'hello' /dev/null
  817: @end smallexample
  818: 
  819: @item
  820: パターンが@samp{-}で始まる場合,どうすれば良いのでしょうか?
  821: 
  822: @example
  823: grep -e '--cut here--' *
  824: @end example 
  825: 
  826: @noindent
  827: @samp{--cut here--}に一致する全ての行を検索します.@samp{-e}がない場合,
  828: @command{grep}は,@samp{--cut here--}をオプションのリストとして,分割し
  829: ようとします.
  830: 
  831: @item
  832: 単語の一部ではなく,単語全体を検索したいのですが?
  833: 
  834: @example
  835: grep -w 'hello' *
  836: @end example
  837: 
  838: @noindent
  839: 単語全体で@samp{hello}となるもののみを検索します.@samp{Othello}には一致
  840: しません.より制御するため,単語の最初と最後に一致する,@samp{\<}と
  841: @samp{\>}を使ってください.例えば,以下のようにします.
  842: 
  843: @example
  844: grep 'hello\>' *
  845: @end example
  846: 
  847: @noindent
  848: @samp{hello}で終る単語のみを検索するので,単語@samp{Othello}に一致します.
  849: 
  850: @item
  851: 一致した行の周りの文脈を出力するには,どうしたら良いのでしょうか?
  852: 
  853: @example
  854: grep -C 2 'hello' *
  855: @end example
  856: 
  857: @noindent
  858: 一致した行の周りの文を,それぞれ2行出力します.
  859: 
  860: @item
  861: @command{grep}で強制的にファイル名を出力するにはどうしたら良いのでしょう
  862: か?
  863: 
  864: @file{/dev/null}を加えてください.
  865: 
  866: @example
  867: grep 'eli' /etc/passwd /dev/null
  868: @end example
  869: 
  870: @item
  871: @command{ps}出力で,奇妙な正規表現をなぜ使うのですか?
  872: 
  873: @example
  874: ps -ef | grep '[c]ron'
  875: @end example
  876: 
  877: パターンが角カッコなしで書かれている場合,@command{ps}出力行の
  878: @command{cron}だけでなく,@command{ps}出力の@command{grep}にも一致します.
  879: 
  880: @item
  881: @command{grep}は「バイナリファイルの一致」をなぜ報告するのですか?
  882: 
  883: @command{grep}が,バイナリファイルから全ての一致@strong{行}をリストアッ
  884: プした場合,生成された出力はおそらく役に立たず,ディスプレイにゴミを撒き
  885: 散らすでしょう.そのため,@sc{gnu} @command{grep}は,明らかなバイナリファ
  886: イルからの出力は抑制します.明らかなバイナリファイルからも,@sc{gnu}
  887: @command{grep}の出力を強制させるため,@samp{-a}や
  888: @samp{--binary-files=text}オプションを使用してください.``Binary file
  889: matches''メッセージをエミュレートするため,@samp{-I}や
  890: @samp{--binary-files=without-match}オプションを使用してください.
  891: 
  892: @item
  893: @samp{grep -lv}は,なぜ一致しないファイル名を出力しないのですか?
  894: 
  895: @samp{grep -lv}は,1つ以上一致していない行を含む,全てのファイル名をリス
  896: トアップします.一致行がない全てのファイル名をリストアップするために,
  897: @samp{-L}や@samp{--files-without-match}オプションを使ってください.
  898: 
  899: @item
  900: @sc{or}は@samp{|}でできますが,@sc{and}はどうするのですか?
  901: 
  902: @example
  903: grep 'paul' /etc/motd | grep 'franc,ois'
  904: @end example
  905: 
  906: @noindent
  907: @samp{paul}と@samp{franc,ois}の両方を含む全ての行を検索します.
  908: 
  909: @item
  910: 標準入力とファイルの両方を,どうすると検索できますか?
  911: 
  912: ファイル名@samp{-}の指定を使用してください.
  913: 
  914: @example
  915: cat /etc/passwd | grep 'alain' - /etc/motd
  916: @end example
  917: @end enumerate
  918: 
  919: @node Reporting Bugs
  920: @chapter バグの報告
  921: 
  922: @cindex Bugs, reporting
  923: バグの報告は,@email{bug-gnu-utils@@gnu.org}に電子メールを送ってください.
  924: ``Subject:''フィールドのどこかに,単語``grep''があることを確かめてくださ
  925: い.
  926: 
  927: @samp{@{m,n@}}の大きな繰り返し回数で,@command{grep}が多くのメモリを使う
  928: 可能性があります.さらに,特定のその他の曖昧な正規表現は,指数関数的な時
  929: 間と空間を要求し,@command{grep}の実行はメモリ不足になる可能性があります.
  930: 後方参照は大変遅く,指数関数的な時間を必要とする可能性があります.
  931: 
  932: @page
  933: @node Concept Index
  934: @unnumbered 概念による索引
  935: 
  936: これは,@command{grep}コマンドとコマンドラインオプション以外の,このマニュ
  937: アルで述べられている,全ての問題の,一般的な索引です.
  938: 
  939: @printindex cp
  940: 
  941: @page
  942: @node Index
  943: @unnumbered 索引
  944: 
  945: これは,全ての@command{grep}コマンド,コマンドラインオプションと,環境変
  946: 数の,アルファベット順のリストです.
  947: 
  948: @printindex fn
  949: 
  950: @contents
  951: @bye

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>