2013-09-12

find xargs grep で、PHP のソースを検索

拡張子が .html のファイルから、PHP のソースが記述されているファイルを抽出する必要があったので、find と xargs と grep の合わせ技で検索してみた。

こんな感じ。

cd /var/www/html
find . -name "*.html" -type f -print0 | xargs -0 grep -P '<\?[\s\S]*?\?>'

grep の -P オプションで複数行を対象とし、

正規表現の [\s\S]*? で改行が含まれている範囲も検索している。





なぜ、拡張子が.html のファイルを対象にしているかって?

それはね、.htaccess に

AddType application/x-httpd-php .php .html

って定義してあったサイトをバックアップから戻したときに

「サーバでPGが動くファイルは、戻さないで」

っていうオーダーがあったから。

じゃあ、なぜそんなオーダーが来たかというと...云わずもがなです。






ちなみに、<??> で囲まれている箇所を抽出しているので、

<?xml version="1.0" encoding="UTF-8"?>

みたいな XML宣言 も抽出されてしまう。





0 件のコメント:

コメントを投稿

結局は可愛い我が子

以前の会社の話。 俺がいたころ、「当時の社長」の息子が転職してきた。 「あー、結局は同族会社か」 と思ったし、まあ、ほかのヤツもそう思ったよね。 その時は否定した「当時の社長」。 でも、なーんか含みを持たせた逃げの言い訳してたなー。 その器があればとか、 周りが認めてくれればとか...