MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Linuxコマンド - grepのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Linuxコマンド - grep
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <code>grep</code>コマンドとは、ファイル中の文字列に対して、正規表現を使って検索して表示するコマンドである。<br> ここでは、grepの基本操作を記載する。<br> <br><br> == grepコマンドの基本 == ===== grepコマンドの基本動作 ===== grepコマンドは、ファイル中の文字列を検索するコマンドである。<br> 使用方法は、次に示す通り、シンプルなものになっている。<br> grep <検索正規表現> <ファイル名> <br> 以下の例では、testディレクトリに存在する全てのファイルから、hogeという文字列を検索している。<br> <code>-n</code>オプションを付加することで、マッチしたファイルの行番号も表示する。<br> <code>-r</code>オプションを付加することで、サブディレクトリに存在するファイルも再帰検索する。<br> grep "hoge" -nr test/* <br> ===== grepコマンドのand検索 ===== grepコマンドでは、2つ以上の条件を設定して検索するand検索ができる。<br> 基本的には、パイプで繋げて記述する。<br> grep <検索文字列> <ファイル名> | grep <検索文字列2> <br> 1文の中でのand検索では、次のように正規表現を使う。<br> .は任意の文字、*は直前の文字の0個以上の繰り返しを表す正規表現である。<br> grep <スタートの検索文字列.*終わりの検索文字列> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、rで始まりpで終わる文字列が存在する行を検索するには、以下のようにする。<br> grep r.*p work/* <br><br> == grepコマンドのオプション == ===== -iオプション : 大文字と小文字を区別せず検索する ===== grepコマンドに<code>-i</code>オプションをつけると、大文字と小文字を区別せずに検索できる。<br> grep –i 検索正規表現 ファイル名 <br> 例えば、testディレクトリ内の全てのファイルから大文字のAと小文字のaが区別なく検索するには、以下のようにする。<br> grep –i a test/* <br> ===== -Eオプション : 拡張正規表現で検索を行う ===== 2つの条件のOR検索を行うには、|のOR演算子を使用するが、そのためには拡張正規表現を使う必要がある。<br> その拡張席表現をするものが、<code>-E</code>オプションである。<br> grep –E <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、小文字のpまたはeのいずれかを検索するには、以下のようにする。<br> grep –E 'p|e' test/* <br> <code>grep</code>コマンドは、多くの正規表現を使用することができる。<br> ただし、<code>grep</code>コマンドの正規表現の記述方法は、他のプログラム言語の正規表現はやや異なっているので注意する。<br> <br> 下表に、<code>grep</code>コマンドで使用できる正規表現を示す。<br> 併せて、<code>sed</code>コマンドと<code>awk</code>コマンドの正規表現も記載する。<br> <center> {| class="wikitable" |- ! grep !! sed !! awk !! 意味 |- | . || . || . || 任意の1文字 |- | * || * || * || 直前の1文字または1パターンの0回以上の繰り返し |- | ^ || ^ || ^ || 行の先頭 |- | $ || $ || $ || 行の末尾 |- | \( \) || \( \) || () || パターンのグループ化 |- | || \1 \2 \3 || \1 \2 \3 || 後方参照 |- | [ ] || [ ] || [ ] || 括弧内の任意の1文字 |- | \{n\} || \{n\} || {n} || 直前の1文字または1パターンのn回の繰り返し |- | \{n, \} || \{n, \} || {n, } || 直前の1文字または1パターンのn回以上の繰り返し |- | \{n, m\} || \{n, m\} || {n, m} || 直前の1文字または1パターンのn回以上かつm回以下の繰り返し |- | \+ || \+ || + || 直前の1文字あるいは1パターンの1回以上の繰り返し |- | \? || || ? || 直前の1文字あるいは1パターンの0回または1回だけ出現 |- | <nowiki>\|</nowiki> || <nowiki>\|</nowiki> || <nowiki>|</nowiki> || 2 パターンのうちどちら片方 |} </center> <br> ===== -eオプション : 一致処理に指定した正規表現 ===== <code>-e</code>オプションは、一致処理に指定した正規表現を行うオプションであるが、実際には、OR検索を行う時に使用する。<br> grep –e <検索正規表現1> –e <検索正規表現2> <ファイル名> <br> 例えば、<code>-e</code>オプションを使用して、testディレクトリ内の全てのファイルから、大文字のpまたはeのいずれかを検索するには、以下のようにする。<br> grep –e p –e e work/* <br> ===== -vオプション : 一致しないものを検索する ===== <code>-v</code>オプションは、一致しないものを検索する時に使用する。<br> grep –v <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、1の文字を含まないものを検索するには、以下のようにする。<br> grep -v 1 test/* <br> ===== -nオプション : 検索結果に行番号を表示する ===== <code>-n</code>オプションは、検索結果に行番号を表示する。<br> grep –n <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、aを検索して結果を行番号と合わせて表示するには、以下のようにする。<br> grep -n a test/* <br> ===== -lオプション : 検索結果にファイル名のみ表示する ===== <code>-l</code>オプションは、検索した結果にファイル名のみを表示したい時に使用する。<br> grep –l <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、aの文字を検索してファイル名を表示するには、以下のようにする。<br> grep -l a test/* <br> ===== -hオプション : 検索結果にファイル名を表示しない ===== <code>-h</code>オプションは、検索した結果にファイル名を表示しない時に使用する。<br> grep –h <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、hの文字を検索してファイル名は表示しない場合は、以下のようにする。<br> grep -h a test/* <br> また、ファイル名を表示せずに行番号と該当内容のみ表示する場合は、<code>-n</code>オプションと<code>-h</code>オプションを組み合わせる。<br> 例えば、testディレクトリ内の全てのファイルから、aの文字を検索して行番号とファイル名の表示をするには、以下のようにする。<br> grep -nh a test/* <br> ===== -oオプション : 検索結果に一致した文字を表示する ===== <code>-o</code>オプションは、検索した時に該当したファイルを表示する。<br> grep –o <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、pで始まりeで終わる文字を検索して、該当の文字とともに表示する場合は、以下のようにする。<br> grep -o p.*e test/* <br> ===== -Cオプション : 検索結果に一致した箇所から前後に指定した行数を表示する ===== <code>-C</code>オプションは、検索した結果に合わせて、前後に指定した行数を表示する。<br> grep –C <行数> <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、2の文字を検索して、あわせて、前後に行ずつ表示する場合は、以下のようにする。<br> grep -C 1 2 test/* <br> ===== -rオプション : ディレクトリ内も検索対象とする ===== <code>-r</code>オプションは、ディレクトリ内を再帰検索する時に使用する。<br> grep –r <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内にある下層のディレクトリも含めて全てのファイルから、aの文字を検索するには、以下のようにする。<br> grep -r a test/* <br> ===== -Lオプション : 検索した結果、該当しなったファイルを表示する ===== <code>-L</code>オプションは、検索した結果、該当しなったファイルを表示する。<br> grep –L <検索正規表現> <ファイル名> <br> 例えば、testディレクトリ内の全てのファイルから、aを検索した結果、該当しなかったファイルを表示する場合は、以下のようにする。<br> grep -L a test/* <br><br> __FORCETOC__ [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]]
Linuxコマンド - grep
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse