アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

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

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

A 回答 (5件)

コメントが付かないようなので・・・



> ためしてみたところ
> ?
> と表示され、

行末のセミコロン(;)を忘れていませんか?
僕のを見やすいようにすべて全角で書くと以下になります。

find / -type f -exec grep test {} /dev/null ¥;

これを実際には半角で入力してください。

この回答への補足

すみません ; 抜けてました。。。
ご指摘ありがとうございます。

補足日時:2007/01/15 10:31
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
ind / -type f -exec grep test {} /dev/null ¥;

にて確認がとれました。

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

#4最終行訂正


誤:(ls -R / | grep -v / | exec test /dev/null の方がいいかな)
正:(ls -R / | grep -v / | exec grep test /dev/null の方がいいかな)

肝心の grep が落ちてました・・・
    • good
    • 0

grep の再帰オプション (-r)やfindを使う以外の方法では


ls の再帰オプション (-R) を使って、
ls -R / | exec grep test /dev/null
のような手もあるかと思います。
(ls -R / | grep -v / | exec test /dev/null の方がいいかな)
    • good
    • 0
この回答へのお礼

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

ls -Rを使う手もあるのですね。

今回はfindが使えたのでfindで実行しました。

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

こっちの方がいいかな?


find / -type f -exec grep test {} /dev/null \;

-type fでファイルだけをgrep対象にします。
grepはファイル名が1つだけだと行頭にファイル名を表示しないので/dev/nullを指定して見た目上2つのファイルにします。
また、全ファイルへのアクセス権利のあるユーザー(rootがベスト)で実行しないとパーミッションエラーになるので注意してください。

この回答への補足

回答ありがとうございます。
コマンドは実行でき、echo $?で0が帰ってきています。

が、本当にできたのか・・・というのが何かに残るようにできないでしょうか。

補足日時:2007/01/15 10:29
    • good
    • 0
この回答へのお礼

必ずひっかかる文字列にてコマンドを実行し、
コマンドの信頼性の確認が取れました。

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

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

検索にヒットしないファイル名も全て表示されてしまいますが、とりあえず。



find / -print -exec grep test {} \;

この回答への補足

回答ありがとうございます。
ためしてみたところ

?

と表示され、エンターキーをおしたら

「find: 文が正しくありません」
と表示されてしまいました・・
?が表示されたときに何か入力するのでしょうか?

補足日時:2007/01/12 22:29
    • good
    • 0

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