ベリラボ

OSS(オープンソースソフトウェア) を主体とした技術検証と小ネタなど

その他

Linux(UNIX)であるディレクトリ配下の全ファイルから検索

投稿日:

あるディレクトリにファイルが複数あって検索するとき、grepコマンドで検索できますが、サブディレクトリがあって階層も不明な場合、どうしたらよいでしょうか?

こんなとき、Linuxであれば、以下のようにできます。

$ find あるディレクトリ -type f -exec grep -H  検索文字列 {} \;
たとえば、「/etc」 配下の全ファイルから、「192.168.0.100」 を検索したい場合、

$ find /etc -type f -exec grep -H 192.168.0.100 {} \;

↑こうなります。

ここでのキモは、grepの 「-H」オプションを使うことです。このオプションをつけないと検索した行の表示はされますが、ファイル名が表示されないのでどこのファイルかわからないのです。

さて、Linux系の大多数のOSでは、 grepの 「-H」オプションがつかえますが、AIX等のUNIXでは使えないことが多いです。そのときにどうするかというと、

$ touch ダミーファイル

$ find あるディレクトリ  -type f -exec grep 検索文字 ダミーファイル {} \;

↑このように、ダミーファイルも一緒にgrepに渡してやることにより複数ファイル検索となり、ファイル名も表示されます。

-その他

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

関連記事

no image

networkアドレス/broadcastアドレス算出CGI

IPアドレスとnetmaskからネットワークアドレスとブロードキャストアドレスを求めるには意外とめんどいかと思います。netmaskが24ビットであればわかりやすいですが、29ビットとかだと一発で出て …

no image

Linux(UNIX)でファイルやディレクトリの権限変更

Linux(UNIX)でファイルやディレクトリの権限変更をするとき、chmodコマンドを使います。なぜかわかりませんが 「chmod 755 ファイル名」 とモードに数値を使っている場面を多く見かけま …

no image

GTD選択から初期段階

GTD(Getting Things Done )とは、簡単にいうとやるべきことをリスト化して頭の中から追い出して、記憶しておく必要がなくなったすっきりした頭でやることだけに集中して仕事をうまくこなす …

no image

CentOS 5.2 で、ntp の同期不具合

CentOS 5.2 にしてから、ntp.nict.jp と時刻同期が取れない(reachがゼロ)の状態となっていました。色々調べてみたら、どうやら IPv6が関係しているのが原因だったみたいです。 …

no image

オバマ氏大統領就任演説

バラク・オバマ氏の大統領就任演説を見ました。 深夜2時からテレビ放映だったのですが、私が生きている間には、これ程の出来事をリアルに見ることができないかもしれないという想いで眠い眼をこすりながら演説だけ …