Windows7でgrepを使う [開発環境]
フレームワークなどの膨大なファイルから必要な文字列を所在を検索するために、Linuxではgrepコマンドが使われる。これをWindows7上で行う方法を調べた。
1. cygwinのダウンロードとインストール
このサイトから"setup.exe"をダウンロードします。
setup.exe を起動します。
インストール先を”e:\cygwin”に変更しました。ここは各自の環境により変更してください。
インターネットへの接続方法を指定します。
日本のサイトを選びました。
パッケージの選択画面です。あとから変更可能なので、ここではデフォルトのまま進みます。
完了です。
2. Cygwinの確認
デスクトップにできたCygwinアイコンを起動します。
grepのバージョンを確認してみる。
3. Cygwinを使う
① cドライブにアクセスする。
“mount”コマンドで現在のマウントポイントを確認する。
cドライブは、”/cygdrive/c”にマウントされている事がわかる。
cドライブへ移動し、”ls”コマンドでファイル内容を確認してみる。
“c:\”のファイルが確認できている。
② フォルダ移動
grepしたいディレクトリに移動する。スペースや()等の特殊記号が含まれるホルダーへの移動は記号の前に”\”を追加します。例えば、
”c:\Progeam Files (x86)” へ移動する場合、以下と記述します。
$ cd c:\Program\ Files\ \(x86\)
③ grepする
書式
$ grep [オプション] パターン ファイル
◆ <INtime>フォルダー以下にあるファイル群から”BEFORE_INIT”を含むファイルを探すには。
$ grep –n –r BEFORE_INIT INtime
◆ ヘッダーファイルのみを対象に検索する場合。
$ find INtime –name *.h | xargs grep –n –r BEFORE_INIT
xargs はfind で見つかった全ファイルのパスを、一度に grep に渡している。
オプションは
-b:行のブロック番号をつける
-c:パターンに一致した行の行数のみを出力する
-h:複数ファイルを指定した際にファイル名を出力しない
-i:大文字小文字を区別しない
-l:パターンに一致した行を含むファイル名だけを出力する
-n:パターンに一致した行のファイル内での行番号を出力する
-s:エラーメッセージのみを出力する
-v:パターンに一致しない行のみを出力する
–color:一致文字列に色を付ける
-o:一致した文字列だけを出力する
-r:特定ディレクトリ以下を再帰的に検索する
コメント 0