拡張子が .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宣言 も抽出されてしまう。