「Linuxコマンド - grep」の版間の差分
93行目: | 93行目: | ||
<br> | <br> | ||
例えば、testディレクトリ内の全てのファイルから、2の文字を検索して、あわせて、前後に行ずつ表示する場合は、以下のようにする。<br> | 例えば、testディレクトリ内の全てのファイルから、2の文字を検索して、あわせて、前後に行ずつ表示する場合は、以下のようにする。<br> | ||
grep -C 1 2 | grep -C 1 2 test/* | ||
<br> | <br> | ||
===== -rオプション : ディレクトリ内も検索対象とする ===== | ===== -rオプション : ディレクトリ内も検索対象とする ===== | ||
100行目: | 100行目: | ||
<br> | <br> | ||
例えば、testディレクトリ内にある下層のディレクトリも含めて全てのファイルから、aの文字を検索するには、以下のようにする。<br> | 例えば、testディレクトリ内にある下層のディレクトリも含めて全てのファイルから、aの文字を検索するには、以下のようにする。<br> | ||
grep -r a | grep -r a test/* | ||
<br> | <br> | ||
===== -Lオプション : 検索した結果、該当しなったファイルを表示する ===== | ===== -Lオプション : 検索した結果、該当しなったファイルを表示する ===== | ||
<code>-L</code>オプションは、検索した結果、該当しなったファイルを表示する。<br> | <code>-L</code>オプションは、検索した結果、該当しなったファイルを表示する。<br> | ||
grep –L 検索正規表現 ファイル名 | grep –L <検索正規表現> <ファイル名> | ||
<br> | <br> | ||
例えば、testディレクトリ内の全てのファイルから、aを検索した結果、該当しなかったファイルを表示する場合は、以下のようにする。<br> | 例えば、testディレクトリ内の全てのファイルから、aを検索した結果、該当しなかったファイルを表示する場合は、以下のようにする。<br> |
2020年7月25日 (土) 02:37時点における版
概要
grep
コマンドとは、ファイル中の文字列に対して、正規表現を使って検索して表示するコマンドである。
ここでは、grepの基本操作を記載する。
grepコマンドの基本
grepコマンドの基本動作
grepコマンドは、ファイル中の文字列を検索するコマンドである。
使用方法は、次に示す通り、シンプルなものになっている。
grep <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、aという文字を検索する場合を以下に示す。
grep a test/*
grepコマンドのand検索
grepコマンドでは、2つ以上の条件を設定して検索するand検索ができる。
基本的には、パイプで繋げて記述する。
grep <検索文字列> <ファイル名> | grep <検索文字列2>
1文の中でのand検索では、次のように正規表現を使う。
.は任意の文字、*は直前の文字の0個以上の繰り返しを表す正規表現である。
grep <スタートの検索文字列.*終わりの検索文字列> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、rで始まりpで終わる文字列が存在する行を検索するには、以下のようにする。
grep r.*p work/*
grepコマンドのオプション
-iオプション : 大文字と小文字を区別せず検索する
grepコマンドに-i
オプションをつけると、大文字と小文字を区別せずに検索できる。
grep –i 検索正規表現 ファイル名
例えば、testディレクトリ内の全てのファイルから大文字のAと小文字のaが区別なく検索するには、以下のようにする。
grep –i a test/*
-Eオプション : 拡張正規表現で検索を行う
2つの条件のOR検索を行うには、|のOR演算子を使用するが、そのためには拡張正規表現を使う必要がある。
その拡張席表現をするものが、-E
オプションである。
grep –E <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、大文字のpまたはeのいずれかを検索するには、以下のようにする。
grep –E 'p|e' test/*
-eオプション : 一致処理に指定した正規表現
-e
オプションは、一致処理に指定した正規表現を行うオプションであるが、実際には、OR検索を行う時に使用する。
grep –e <検索正規表現1> –e <検索正規表現2> <ファイル名>
例えば、-e
オプションを使用して、testディレクトリ内の全てのファイルから、大文字のpまたはeのいずれかを検索するには、以下のようにする。
grep –e p –e e work/*
-vオプション : 一致しないものを検索する
-v
オプションは、一致しないものを検索する時に使用する。
grep –v <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、1の文字を含まないものを検索するには、以下のようにする。
grep -v 1 test/*
-nオプション : 検索結果に行番号を表示する
-n
オプションは、検索結果に行番号を表示する。
grep –n <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、aを検索して結果を行番号と合わせて表示するには、以下のようにする。
grep -n a test/*
-lオプション : 検索結果にファイル名のみ表示する
-l
オプションは、検索した結果にファイル名のみを表示したい時に使用する。
grep –l <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、aの文字を検索してファイル名を表示するには、以下のようにする。
grep -l a test/*
-hオプション : 検索結果にファイル名を表示しない
-h
オプションは、検索した結果にファイル名を表示しない時に使用する。
grep –h <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、hの文字を検索してファイル名は表示しない場合は、以下のようにする。
grep -h a test/*
また、ファイル名を表示せずに行番号と該当内容のみ表示する場合は、-n
オプションと-h
オプションを組み合わせる。
例えば、testディレクトリ内の全てのファイルから、aの文字を検索して行番号とファイル名の表示をするには、以下のようにする。
grep -nh a test/*
-oオプション : 検索結果に一致した文字を表示する
-o
オプションは、検索した時に該当したファイルを表示する。
grep –o <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、pで始まりeで終わる文字を検索して、該当の文字とともに表示する場合は、以下のようにする。
grep -o p.*e test/*
-Cオプション : 検索結果に一致した箇所から前後に指定した行数を表示する
-C
オプションは、検索した結果に合わせて、前後に指定した行数を表示する。
grep –C <行数> <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、2の文字を検索して、あわせて、前後に行ずつ表示する場合は、以下のようにする。
grep -C 1 2 test/*
-rオプション : ディレクトリ内も検索対象とする
-r
オプションは、ディレクトリ内を再帰検索する時に使用する。
grep –r <検索正規表現> <ファイル名>
例えば、testディレクトリ内にある下層のディレクトリも含めて全てのファイルから、aの文字を検索するには、以下のようにする。
grep -r a test/*
-Lオプション : 検索した結果、該当しなったファイルを表示する
-L
オプションは、検索した結果、該当しなったファイルを表示する。
grep –L <検索正規表現> <ファイル名>
例えば、testディレクトリ内の全てのファイルから、aを検索した結果、該当しなかったファイルを表示する場合は、以下のようにする。
grep -L a test/*