grepは、ファイル内を検索して、指定された正規表現にマッチする行があるかどうかを確認するために使用されます。ファイルの内容ではなく、ファイル名そのものにマッチする正規表現を書きたいのです。これをシステムのルートディレクトリから実行して、正規表現にマッチするすべてのファイルを見つけたいと思います。
例えば、"f"で始まり.frmで終わるすべてのVBフォームファイルを見つけたい場合、次のような正規表現を使用します。
"f[[:alnum:]]*\.frm"
grepはこれを実行できますか?できない場合は、これを可能にするユーティリティーはありますか?ありがとうございます。
Pabloが言ったように、grep
の代わりにfind
を使う必要がありますが、find
をgrep
にパイプする必要はありません。find`にはその機能が組み込まれています。
find . -regex 'f[[:alnum:]]\.frm'
find` はファイルを名前で検索する非常に強力なプログラムで、ファイルタイプによる検索、深さの制限、ブーリアン演算による異なる検索語の組み合わせ、見つかったファイルに対する任意のコマンドの実行などをサポートしています。詳しくは find man page をご覧ください。
find -iname "file_name"
Syntax :-
find -type type_descriptor file_name_here
type_descriptor タイプ:-。
f: 通常のファイル
d: ディレクトリ
l: シンボリックリンク
c: 文字デバイス
b:ブロックデバイス