.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
-iname
globと一致するファイルの検索を表し、大文字と小文字を区別しません。問題は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より多くの情報を知りたいです。