grepの使い方いくつか

   2016/09/16

みなさん、grep使っていますか。本記事では、windows環境におけるgrepの使い方について説明します。

(といいつつも、自分がよく使うコマンドの備忘ですが…)

macやlinuxでも共通するコマンドを載せているつもりです。

 

grepとは

グレップと読みます。正規表現のルールに従って、ファイルの中身を検索する便利コマンドです。

wikipediaによると、

概要[編集]
grep の名の由来は、ラインエディタedのコマンド g/re/p であり、その意味するところは「ファイル全体から/正規表現に一致する行を/表示する」[1]である。

のようです。g/re/pとは知りませんでした。

 

インストール

windowsで使う場合は、幾つか方法があります。

私は、Gowを使いました。GowはWindows上でリナックスコマンドを実行できるようにするソフトウェアです。

Cygwin等の導入なくLinuxコマンドが使えますし、コマンドプロンプト上で簡単に利用できるので、私のようなにわかにはピッタリです。

 

インストールは、毎度おなじみChcolateyで行いました。

 

macやlinuxですと最初からインストールされていますね。

 

使い方

幾つか、パターンを身につけていけば後は調べながらやればいいと思います。

ヘルプを見る

結果はこちら。

macやlinuxなら下記のコマンドでもOKですね。

※man = manual の略

特定の拡張子から、LANGキーワードがあるファイルを抽出する

WordPressをインストールした際に、使ったコマンドです。LANGとか書かれているphpファイルを探しました。

カレント以下で、search_textを含んだものを検索

カレントディレクトリ以下の *.java から hogehogeという文字を検索する場合は、下記のように検索します。(だれかが、ログにhogehogeという文字列を残しておいたんです…)。

rは再帰的に、.はカレントディレクトリという意味ですね。

検索しつつ行番号を出す

-n か –line-number をオプションに加えるだけです。

バイナリもテキストファイルとしてgrepする

-n か –line-number をオプションに加えるだけです。

動作しているプロセスを抜き出す

grep単体で使うことも多いですが、パイプ(リダイレクト)をすることも多々あります。

例:特定のプロセスが生きているかどうか確認したり、特定の名前のログファイルが存在するか、など

 

まとめ

IT・Webエンジニアのコンピュータ操作のほとんどは、テキスト操作がメインです。僕はまだまだコマンドを調べながら、というレベルですが周りの人はホント爆速でターミナルからエディタへ、エディタからターミナルへファイルを行き来しています。そんな操作を行えるようになるための一歩目がgrepコマンドだと思います。構造を理解したら、OSSをDLしてみてソースコードを調べるのにgrepを使ってみるのも良い練習になるかもしれません。(IDE等でもできますが、あえて)。

  • このエントリーをはてなブックマークに追加
  • Pocket

この記事へのコメントはこちら

メールアドレスは公開されませんのでご安心ください。
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメント送信」ボタンを押してください。