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 件のコメント:

コメントを投稿

.htaccessで403を404で返す

久しぶりにリライトルールを書いたよ。 ドキュメントルートに.htaccessを置く場合の記述↓ # 403.html は実体がなくてよい。この設定をすることで、あっても使われなくなる。 ErrorDocument 403 /403.html # 独自の404ページをドキュメ...