ベリラボ

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

Linuxで消せないファイルの対応方法

Linux/UNIXで、「*」「?」「-i」等ができていて通常オプションのrmコマンドだと消えないファイルの対処方法をwikiに書きました。是非読んでください。 Linuxで消せないファイルの対応方法

no image

Gmailのデータバックアップ

Gmailにメモや雑多なデータを置いていますが、ここのところのGoogleのサービス終了告知に不安となり、Gmailのデータをローカルマシンに取り込んでいます。(誤解のないように、Gmailがサービス …

no image

LWP::UserAgent で、cookie 保存

Perl LWP::UserAgent で、cookie を保存するサンプルプログラムをwikiに掲載しました。 Perl 5.8.8 上で確認しています。 サンプルプログラム

no image

rpmコマンド まとめ3

rpmファイルからインストールせずに中身だけを取り出す方法です。 【rpmファイル内のファイル一覧表示】 rpm2cpio rpmファイル | cpio –list 【rpmファイル内のフ …

no image

バレンタインデーに時間が整列

もうすぐUnix時間が整列します。 正確には日本時間で、「2009-02-14 08:31:30 」 http://www.1234567890day.com/ ↑こんなサイトもありました。 $ da …