○Linuxでの文字列検索が知りたい。


今、ディレクトリの階層が以下の状態にあります。

/home/room1a/room2a/room3a/room3a
/room2b /room3b a.txt
/room3c

そして、a.txtにはmoziという文字列が書いて
あるとします。

○今、homeにいてファイルの中にある"mozi"という文字列を見つけたいのですが、

find ./* | grep "mozi" *
or
find ./* | grep "mozi" ./*

とやっても深い階層の文字列まで検索しません。

UNIX/Linux系での検索方法を教えてください。

回答の条件
  • 1人2回まで
  • 登録:2007/09/22 15:10:24
  • 終了:2007/09/22 15:43:12

回答(2件)

id:dev_zer0 No.1

dev_zer0回答回数332ベストアンサー獲得回数252007/09/22 15:21:01

ポイント60pt

http://www.linux.or.jp/JM/html/GNU_findutils/man1/xargs.1.html

おそらく、上記のコマンドだと

・ファイル名に"mozi"が含まれているか?

・カレントディレクトリに存在するファイル内に"mozi"が含まれているか?

ということをしているに過ぎません


今、homeにいてファイルの中にある"mozi"という文字列を見つける場合

find . | xargs grep "mozi"

また、ファイルがそんなに多くないのでしたら

grep "mozi" `find .`

という方法もタイプ量が少なくていいかもしれません

id:central_dogma

ありがとうございます。xargsがキモだったの

ですね。

気持ちよく文字が発見できました。

これにて質問を終了したいと思います。

2007/09/22 15:42:48

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 noocyte 21 19 3 2007-09-22 15:33:18
  • id:Bookmarker
    今時なら…

    find . -type f -print0 | xargs -0 grep mozi /dev/null

    参考: http://www.otsune.com/diary/2007/03/29/1.html
  • id:b-wind
    素直にまずは
    $ grep -r "mozi" *
    じゃないのか…
  • id:tezcello
    find を使う(ディレクトリや細かな条件をつけるとか)なら、
    find . -type f -exec grep moji {} ¥;
    でよいのでは?

    単純なコマンドなら、パイプで渡さなくても可能です。
    お使いの Linux のmanページも参考になさって下さい。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません