特定の(サブ)文字列を(名前、ディレクトリ、またはコンテンツに)含むすべての一般的なファイルのリスト

特定の(サブ)文字列を(名前、ディレクトリ、またはコンテンツに)含むすべての一般的なファイルのリスト

タイトルと同様に、部分文字列が表示される各(テキスト)ファイルの行番号も印刷したいと思います。

これまで私は以下を持っています:

find /sys | grep "filesystem"

しかし、ファイルの内容は見ず、ファイル名とディレクトリだけを見るようです。

同時に複数の文字列を検索するには?これはさらに検索し"*filesystem"て、この文字列が表示される可能性がある"filesystem*"すべての項目を含める必要があると思うからです。"*filesystem*"

よろしくお願いします。

ベストアンサー1

ファイル名と内容に2つの異なるコマンドを使用しても問題ない場合は、次のコマンドが役に立ちます。

find /sys -name "*filesystem*"

上記のコマンドは、ファイル名/ディレクトリ名の一部として「filesystem」を含むすべてのファイル/ディレクトリを検索します。

grep -rn "filesystem" /sys/*

上記のコマンドは、内容に「filesystem」を含むすべてのファイルを再帰的に検索し、一致する行とともに行番号を印刷します。コンテンツではなく行番号のみを印刷するには、次のフィルタを使用できます。 2を印刷したい列番号に置き換えることができます。

grep -rn "filesystem" /sys/* | awk -F":" {'print $2'}

おすすめ記事