*.htmlファイルを含むすべてのディレクトリを一覧表示し、ディレクトリ内のファイルを一覧表示します。

*.htmlファイルを含むすべてのディレクトリを一覧表示し、ディレクトリ内のファイルを一覧表示します。

.htmケースが完成したかどうかにかかわらず、HTML文書を含むすべてのディレクトリのリストを取得したいと思います.html

私は試した:

find / -type d -ls | tr -s [:blank:] | cut -d ' ' -f 11 | grep -i -e "*.htm" -e "*.html"

ただし、ディレクトリのみが一覧表示されます。このディレクトリの内容を一覧表示する必要がありますが、方法がわかりません。

その後、次のことを試しました。

find / -type d -exec ls -l {} \; | tr -s [:blank:] | cut -d ' ' -f 9 | grep -i -e ".htm" -e ".html"

その項目が見つかりましたが、その項目があるディレクトリをどのように印刷しますか?

ベストアンサー1

サンプル出力を含むいくつかの可能なコマンドは次のとおりです。

最も簡単な:

$ find / -iname "*.htm*"
foo/a.HTM
foo/b.HTML
foo/b.html
foo/x.htmx
foo/a.htm
bar/a.htm

-inameglobと一致するファイルの検索を表し、大文字と小文字を区別しません。問題はglobが*.htm*それを発見することですhtmx

検索を防ぐには、htmxグローバルを分割する必要があります。

$ find / -iname "*.htm" -o -iname "*.html"
foo/a.HTM
foo/b.HTML
foo/b.html
foo/a.htm
bar/a.htm

または grep を使用して正規表現を使用します。

$ find / | grep -i "\.html*$"
foo/a.HTM
foo/b.HTML
foo/b.html
foo/a.htm
bar/a.htm

正規表現はglobとは異なります。特に、点(.)とアスタリスク(*)はglobと正規表現で非常に異なる意味を持ちます。

バラよりhttps://en.wikipedia.org/wiki/Glob_(programming)#Compared_to_regular_expressionsより多くの情報を知りたいです。

おすすめ記事