- ベストアンサー
find grep につきまして
いつもお世話になっております。 自サイトの、http://hogehoge.com/aaa/zzz.php?uid=xxx というリンクをfindとgrepを使って、 再帰的に検索したいのですが、 サンプルをおしえていただけませんでしょうか。 お手数をお掛けしますが、どうぞよろしく願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>具体的には、自前サーバーにsshでログインして、 >htmlまたはphp ファイルの中から、 >http://hogehoge.com/aaa/zzz.php?uid=xxx >(zzzは固定、xxxは動的で、既になんらか値が埋め込まれている状況です。 >(文字列としてuid=00-AA9zzのように) では、cdでファイルのある一番上のディレクトリに移動したとして find . \( -name "*.html" -o -name "*.php" \) -exec grep -H -E 'http://hogehoge.com/aaa/zzz.php\?uid=\w\w-\w+' \{\} \; ・-nameが複数あって、それがor条件なので\( \)でくくります。 ・grepで検索ファイル名を表示するため-Hオプションを指定します (ファイルを1つしか指定しない場合、デフォルトではファイル名表示がない) ・拡張正規表現を使うため-Eオプションを指定します。(または、egrepコマンドを使用する) ・?は正規表現で特別な意味を持つので、\?としてその特別な意味をキャンセルします ・例から、uidを [英数字2文字]-[英数字複数]と判断して\wを使用しました。この形式でない場合は適宜変更してください 最近ではfindで検索→xargsで処理というのも流行りです find . \( -name "*.html" -o -name "*.php" \) -print0 | xargs -0 grep -H -E 'http://hogehoge.com/aaa/zzz.php\?uid=\w\w-\w+'
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
・「自サイト」とは何を指してますか? ・その「自サイト」でfindやgrepが使えるような状態にできますか? (telnetやsshでログインするとか) ・検索対象は何ですか? ファイルならその書式は? 「http://hogehoge.com/aaa/zzz.php?uid=xxx」は、検索対象から探す「文字列」ですか?それとも、検索対象そのものですか? zzzやxxx等は固定でしょうか? ・リンクというのは <a href=~>ということでしょうか? あまりにも曖昧すぎて、サンプルを示しようがありません。 たとえば、 ・自前サーバーのhtmlファイルから <a href=~>を検索 と ・レンタルサーバーでPHPで動的に作成されるwikiやブログから検索 とでは、まったくやりかたが違います。
補足
ご連絡ありがとうございます。 ・自前サーバーのhtmlファイルから <a href=~>を検索 を検索したいです。 具体的には、自前サーバーにsshでログインして、 htmlまたはphp ファイルの中から、 http://hogehoge.com/aaa/zzz.php?uid=xxx (zzzは固定、xxxは動的で、既になんらか値が埋め込まれている状況です。 (文字列としてuid=00-AA9zzのように) 説明が、下手で申し訳ございません。 これで、伝わりますでしょうか。
お礼
ありがとうございました。 解説つきでわかりやすかったです。