重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

たとえば、/(ルート)配下にあるすべてのディレクトリ(サブディレクトリ)配下のファイルに対して、'test'という文字列が入っているかどうかを調べたいと思っています。

サブディレクトリは何階層にもなっており、存在するすべてのファイルに対して検索をかけたいと思っています。

以上のような場合にどのようにgrepを使用すればよいのでしょうか?

よろしくお願いします。

A 回答 (1件)

grepの種類によっては、「-r」オプション(ディレクトリを再帰的に検索)


が使えることがあります。
>cd /
>grep -r test *

なければ「find」コマンドと組み合わせる方法があります。
>find ./ -type f -exec grep -H test \{\} \;

サブディレクトリの階層があらかじめ分かっているなら次のような方法もあります。
>grep test * */* */*/*
(3階層の場合です。ドット付きファイル(.loginとか)も検索したいなら「.*」等も
入れる必要があります。)

お使いの環境が分かりませんので、状況によって使い分けてください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

findと組み合わせることで確認ができました。

お礼日時:2007/01/15 13:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!