- 締切済み
grepコマンドの使い方
下記のようなファイルがあるとします。 カレントディレクトリ /home から"hello"という文字列が含まれるテキストを grepしたい場合、コマンドはどのようにすればいいのでしょうか? 色々な方法があると思いますが、よろしくお願いします。 ---------------------------------------------------------------------- /home/hoge1/foo1.txt foo2.exe foo3.txt /home/hoge2/hogehoge2/foo4.txt foo5.exe /home/hoge3/hogehogehoge3/foo6.txt foo7.exe foo8.zip ----------------------------------------------------------------------
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- estea
- ベストアンサー率44% (39/87)
バイナリをはずすなら -I オプションが有効らしいです grep hello -r /home/ -I でいいですか?
- estea
- ベストアンサー率44% (39/87)
> -d ACTION, --directories=ACTION > (中略) > ACTION が recurse なら、 grep は各ディレクトリ下の > すべてのファイルを再帰的に読み取ります。 > これは -r オプションと等価です。 らしいんで grep hello -r /home/ はどうなんだろう
- NNori
- ベストアンサー率22% (377/1669)
grep は引数で指定されたファイルからしか検索できないので、 /home 以下のすべてのファイルを対象にgrep したいときは、 find と組み合わせるのはいかがでしょうか。 また、grep はファイルをひとつしか指定しないと検索した結果しか表示されなくファイル名がわからなくなってしまうので、grep の引数に-l をつけてファイル名を表示させた方がいいですね。 find /home -exec grep -l hello {};
お礼
ご回答ありがとうございました。 実行した結果エラーが表示されてしまいました。。。 ここはLinuxカテゴリですが、当方cygwinでした。 すみません。
お礼
ご回答ありがとうございました。 こんな短いコマンドでできるとは思いませんでした。 しかし、例の *.exe にも "hello" が含まれると引っかかってしまいます。 パイプ等を使用すると複雑になるのでしょうか?