Home 技術ドキュメント Linux操作 PHPプログラマのためのgrep・findコマンドの使い方

PHPプログラマのためのgrep・findコマンドの使い方

Eメール 印刷 PDF

grepの使い方(基本:grep -R "keyword" ./*)

grepはディレクトリ以下のファイルの中身から、特定のキーワードを探し出すことができます。
プログラムのいずれかのファイルの中の処理を修正したりする際には、手がかりとなる言葉でgrep検索をかけてみて、「どの部分を修正すれば良いのか?」を突き止めます。

これは技術者の基本ですので、必ず身につけましょう。

(バリエーション)
grep -R --color "key" ./*
-見つかったkeyの色を変え、見やすく表示する

grep -R --color "key" ./*.php
-phpファイルに限定して、ディレクトリ以下のkeyを含むファイルを検索し、それをハイライト表示する。

findコマンドの使い方(基本:find ./ -name "search*")

 findは主にファイル名を検索したい時に使います。
基本例では「現在のディレクトリ以下の中でsearchで始まるファイルを検索」しています。見落としてはいけないのは、ダブルコーテーション(")内に、「*」(ワイルドカード)がある点です。これがなければ、「完全一致検索」となり、膨大なファイルを相手にするプログラミングの際には、効率があまり良くありません。

具体的には、次のようなシーンで使います。

テンプレートにsearch.tplというものがあるが、これのモデル(M/実際に処理が書かれているファイル)はどれだ?
①.search.tplというファイルに対して、わざわざkensaku.phpなど名前を変えるケースはあまり考えられない。
②.恐らくどこかに「search.php」などのファイルがあるはずだ(find ./ -name "search")
※これで見つからない場合は、grepを併用して「それではsearch.tplを呼び出しているファイルは?」あるいは「***.tpl」を呼び出しているファイルは?などターゲットを追い詰めていきます。

(バリエーション)
find ./ -perm 777
-ディレクトリ以下で、パーミッションが777(誰でも書き込める)ファイル、ディレクトリを探す。
※777はログや、画像書き込みフォルダ、一時ディレクトリに使う際が多いので、セキュリティチェックやファイル保存、書き込みができない際などの検証に適している。

diffコマンドの使い方(チームで同時に作業をするとき)

 ファイルをいざ編集するとき、原則的にバックアップを残し、後で回復ができたりこれまでの変更経歴を確認できるようにします。
次に作業をする作業者が、「今のと前のとでどんな変化があるか?」を確認する際に、diff(differentな点を確認する)をします。

(基本コマンド)
diff search.tpl search.tpl~
※前者と後者で何が違うかと表示。

(便利なコマンド)
「元のファイルは分かるが、バックアップがどこかにあるはずなのに分からない場合」
diff search.tpl /home/xxx/public_html
※public_html以下にsearch.tplと同じ名前のファイルがある場合に、比較をしてその結果を返す。

「システム全体のバックアップディレクトリがあり、それぞれの違いをみたい場合」
diff system system_OLD
※sysytemディレクトリとsystem_OLDディレクトリを比較して、お互いの中のすべてのファイルの違いを出す。

 

 
JapaneseEnglish

対応可能オープンソース

(EC系システム)

  • Zencart(&osCommerce)
  • ecCube

(CMS系システム)

  • Joomla(会員系・ポータル)
  • wordpress(ブログ)
  • Movable Type(ブログ)
  • Moodle(オンライン学習)

対応言語・開発分野

(ウェブプログラミング)

  • PHP/Perl/Java
  • Ajax/Action Script
  • MySQL/Postgres

(イントラ系開発分野)

  • .NET/VB/C系
  • Objective-C
  • Access/Excel VBA

(モバイル開発)

  • iアプリ、ezアプリ、sアプリ
  • iPad(アイパッド)、iPhone(アイフォーン)アプリ
  • Android(アンドロイド)アプリ

(組み込み系 検証&シミレーション)

  • HDL(Verilog組み込み検証)
  • AVR(AVR Studioシミュレーション)
  • 組込み連携ウェブソリューション

(サーバ関連)

  • Linux/Windows/Ubuntu
  • メール・ウェブサーバ構築
  • DNS/ネットワーキング
  • バックアップ/クラスタ

サイトについて

リンクフリー

個人ご利用の場合はリンクフリーです。備忘録等に各種ドキュメントへのリンク。ご自由にご利用ください。

転載

出典元表記(当社名orリンク記載)の際は転載等ご自由にご利用ください。

ライセンス

このページの内容の一部は、Google が作成、提供しているコンテンツをベースに変更・複製したもので、クリエイティブ・コモンズの表 示 3.0 ライセンスに記載の条件に従って使用しています。

株式会社 Sola.com

ソラコムお問い合わせ

〒981-0913
宮城県仙台市青葉区昭和町3-7 スカイコート上杉601
TEL:022-234-9972
Fax:022-778-6779

きょうのことば

" 下君はおのれの能を尽くし、中君は人の力を尽くす。上君は人の智を尽くす。 "

韓非子




Art Feature Carousel

Image Caption

スマートフォンアプリ制作

Image Caption

ホームページ作成

Image Caption

サイト翻訳・多言語化