Webサイトの運営会社で得た技術的な知識を記録していきます。 サーバー情報、Webデザイン、プログラミング、このWebサイトで利用させていただいているBlogger(ブロガー)についても公開していきます。

grep検索で特定の文字列を含むファイルの一覧取得する

先日、公開しているWebサイトでPHPの致命的なエラーが表示されて
画面が表示できない状態になったサイトを復旧させてほしいという依頼を受けました。

過去に付き合いのあった会社のWeb担当者からの依頼です。
今でも、時々、仕事の依頼を受けているので、修復できるかは分からないが確認してみることにしました。

Notice: Undefined ~」のPHPエラーが表示されていて、エラーのみが表示された状態に...
結局、管理画面の方は完全に修復できませんでしたが、公開画面側はページ表示できるようになりました。

まずは原因になっているPHPの関数が指定されている場所を特定する必要がありました。
エラーメッセージから場所は分かるんですが、同様の関数が呼び出されているファイルを探す必要が。

その時、Linuxのgrepコマンドを使いました。
grepコマンドについては知っていましたが、今まで使う機会がなかったんですよ。
必要な時は、普段使っているWindows機にファイルをダウンロードさせて検索することが多かったです。

今まではそれで事足りていたんですが、今回はファイル数が数千個もあってこりゃ大変だなという感じでした。
Linux上で検索した方がてっとり早いと思ったことで、Linuxのgrepを使うことになりました。


実際に使用したのはこちらです。
今回はこのコードだけですが、これだけでも覚えておけば便利かなと思います。

grepで文字列を含むファイル一覧を取得する

grepの例

$ grep [検索文字列] -rl [ターゲットのディレクトリパス]


wordを含むファイルを取得する

$ grep word -rl /home/user/public_html
/home/user/public_html/dir1/example.1txt
/home/user/public_html/dir2/example2.txt
/home/user/public_html/dir3/example3.txt
$

wordという文字を含んだファイルの一覧が結果に表示されます。

grepも色々な指定方法があるので、奥が深いですね。
他のコマンドとの組み合わせにより、いろんなやり方があるので少しずつ覚えていく予定です。

以上、Linuxでのgrep検索でした。


0 件のコメント:

人気記事

ラベル

ページ

このブログを検索