LinuxなどのOSで利用可能なファイル内の文字列で正規表現での検索が可能なものにgrepがあります。Linuxで利用可能なgrepのコマンドの基本的な使い方やオプションを利用した検索方法なども含め、利用できるコマンドを紹介していきます。
パソコンを動かすOSにはいろいろなものがありますが、そのうちの1つがLinuxです。Macと同じUNIX系のOSです。
そんなLinuxで利用することができるコマンドの1つに「grep」というものがあります。
Linuxのgrepとは、ファイルの中にある文字列に対し、正規表現を利用して検索し、その結果を表示するために利用するコマンドです。Linuxと同じくUNIX系のOSであるMacでもgrepコマンドを利用することができます。
Linuxのgrepコマンドがどういった際に使われるのかというと、ファイル内にある特定の文字列(文字のパターンと呼ばれる)が存在しているかどうかを検索したいときに利用されます。
grepコマンドで条件指定さえすれば、LinuxOSが入ったパソコン内にある複数ファイルに渡るgrep検索も可能です。条件を複数指定することも可能です。
流れを簡単に説明すると、特定のファイルの中に「テスト」という文字を含むものは存在するのか、という点をコマンドで検索し、それがあれば結果として表示する、という形でgrep検索がおこなわれます。
そんなgrepコマンドは、便利なことからLinuxユーザーで利用している人も少なくありません。ここからはLinuxでのgrepコマンドの使い方を紹介していきます。
1つのファイルから特定の文字列を検索したい場合、Linuxのgrepでは次のようなコマンドを利用します。下記のgrepコマンドの例の場合、「sample.css」というファイルの中の「テスト」を含む文字列をgrepコマンドで検索するという条件が指定されています。
$ grep テスト sample.css |
複数ファイルから特定の文字列を検索する場合、検索したい対象のファイル名をスペースを開けて指定します。下記のgrepコマンドの例の場合、「サンプル.css」と「Sample.css」のファイルの中から「test」を含む文字列を検索するという条件が指定されています。
$ grep "test" サンプル.css Sample.css |
and検索(なおかつ検索)をLinuxのgrepコマンドで検索したい場合は、パイプ(|)を利用してgrepをつなぐことで可能です。下記のgrepコマンドの場合、「テスト」を含みなおかつ「test」を含む文字列を「サンプル.css」の中から検索するという条件です。
$ grep テスト サンプル.css | grep test |
$ grep テスト.*test サンプル.css |
さて、Linuxでgrepコマンドを利用するにあたり、「オプション」というものを利用して更にいろいろな検索ができます。grepでよく利用されるオプションは複数存在しますので、その中でもLinuxでgrep検索を利用する際に主だったものを紹介します。
Linuxのgrepで、入力している条件に一致しない(特定の文字列を含まない)ものを検索する場合、利用するオプションは「-v」です。下記のgrepコマンドの場合は「サンプル.css」ファイルで「sa」を含まない行を検索します。
$ grep -v sa サンプル.css |
英字には大文字・小文字がありますが、この大文字小文字を区別しセず検索したい場合も少なくありません。大文字小文字を区別せずLinuxのgrepコマンドを利用したい場合は「-i」オプションを利用します。
下記のgrepコマンドの場合、「inu」に該当するものだけでなく、大文字小文字の配置が違う「Inu」や「iNu」なども検索されます。大文字小文字の区別ありがgrepでのデフォルトです。
$ grep -i inu サンプル.css |
Linuxのgrepでor/もしくは検索をしたい場合に利用するのが「-e」コマンドです。orの場合はなおかつ検索の場合より少々複雑ですが、さほど難しくありません。
grepのオプションである「-e」は一致処理に指定した正規表現を使う、パターンマッチングを調べるオプションで、これを使ってor検索する場合は下記のように活用します。
下記のgrepコマンドの条件だと「サンプル.css」のファイルの中で「sa」or「te」を含む文字列があるかどうかの検索をしています。
$ grep -e sa -e te サンプル.css |
$ grep -E "sa|te" サンプル.css |
その他にもLinuxのgrepには複数のコマンドやオプションがあるため、利用例も含め一覧という形で紹介していきます。
grepコマンドのオプション一覧 | |||
---|---|---|---|
オプション | grepのオプションの内容 | grepコマンド使用例 | |
-i | 大文字・小文字の区別なしで検索 | $ grep -i inu サンプル.css | |
-e | 一致処理に指定した正規表現を利用し検索 | $ grep -e sa -e te サンプル.css | |
-E | 拡張正規表現での検索 | $ grep -E "sa|te" サンプル.css | |
-v | 一致しないものを検索 | $ grep -v sa サンプル.css | |
-n | 検索結果に行番号を表示 | $ grep -n -B 3 -A 5 サンプル.css | |
-A | 一致した文字列の後ろの行を表示 (行数を数字で指定) |
$ grep -A 3 サンプル.css (後ろの3行を表示) |
|
-B | 一致した文字列の前の行を表示 (行数を数字で指定) |
$ grep -B 2 サンプル.css (前の2行を表示) |
|
-C | 一致した文字列の前後の行を表示 (行数を数字で指定) |
$ grep -C 2 サンプル.css (前後2行を表示) |
|
-h | 検索結果にファイル名を表示しない | $ grep -h -i inu サンプル.css | |
-o | 検索結果に一致した文字だけを表示 | $ grep -o -i inu サンプル.css | |
-l ※小文字のL |
検索結果にファイル名だけを表示 | $ grep -l -i inu サンプル.css | |
-L | 検索条件を含まないファイル名を表示 | $ grep -L -i inu サンプル.css | |
-b | 検索条件が何文字目にあるかを表示 | $ grep -b -i inu サンプル.css | |
-s | エラーメッセージを非表示にする | $ grep -s -B 3 -A 5 サンプル.css |
1 / 2
続きを読む