Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up
![grepでAND検索とOR検索 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/09e683127d2712a6dc4bec67fefd88c299b22ee8/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9Z3JlcCVFMyU4MSVBN0FORCVFNiVBNCU5QyVFNyVCNCVBMiVFMyU4MSVBOE9SJUU2JUE0JTlDJUU3JUI0JUEyJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0wZjdkMDlhMmZhZjEzZjI5MjIzYmE4NDlmYzRlYjMwNQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwcml0dWtpaWkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTY2ODg2NDhlNmY4N2NhNWZjNDdlN2E2MjFkNzNkZDU2%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D95fd1ea337272ca11df463151a3fef81)
grepは、デフォルトでは該当する行だけが表示される。これを、該当する行の前後の行も一緒に表示させるには「-」の後ろに表示したい行数を指定してgrepを実行する。例えば、該当行の前後3行を併せて表示する場合は、「-3」というオプションを指定する。 $ grep -n kitaura smb.conf 4: workgroup = kitaura ←-nオプションを付けたので、4行目に該当する文字列があることが分かる $ grep -3 -n kitaura smb.conf 1-[global] 2- coding system = euc 3- client code page = 932 4: workgroup = kitaura ←-3オプションによって、前後各3行も表示される 5- server string = Samba %v
簡単な解説 grep の -v オプションは除外を意味します。 正規表現で ^ は行頭を表します。 正規表現の \s は空白文字を表し、^\s* は行頭から0回以上繰り返しの空白を意味します。 そのため、\s*# と書くと # から始まるコメント行(#より前には空白がいくつあっても良い)にマッチします。 正規表現の $ は行末を表します。^\s*$ だと空白のみの行にマッチします。 実行例 #========================= # ここのコメントは除去されます #========================= class Hoge # このコメントも除去されます def hello puts "Hello, World!" # ここのコメントは除去されません end end # このコメントは除去されます hoge = Hoge.new hoge.hello #=> H
文字列検索にはgrepコマンドを使うのが一般的だ。 grepコマンドは正規表現による検索をサポートしており、正規表現で使用するメタ文字という特殊な文字(\、[、]、^、$、*、.など)を含む文字列を検索する際はメタ文字の前にバックスラッシュ(\)を付けなければならない。メタ文字が少数であれば問題ないが、数が多くなるとバックスラッシュでエスケープするのは面倒だ。そんなときは、正規表現をサポートしないgrepであるfgrepコマンドを使う。 例えば、「********」という文字を検索する場合、grepコマンドでは、
grep で正規表現にマッチした部分だけを抽出(抜き出す)には、-o オプションを用いる。 ただし、-o オプションは比較的新しい grep でないと使用できない。 GNU utilities for Win32 で紹介したパッケージに含まれる grep のバージョンは、 > grep -V GNU grep version 2.0 + multi-byte extension 1.04 であり、このバージョンでは使えない。そこで、Grep for Windows からダウンロードできるバージョンを使うと良い。こちらは 2.5.4 である。 >grep -V GNU grep 2.5.4 Copyright (C) 2009 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://g
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く