• ベストアンサー

ディレクトリ内のファイルから情報を取得したい

ローカルのディレクトリ内に、大量のHTML/css/画像などのファイルがあります。 階層も深くまでサブディレクトリになっています。 このディレクトリ内のhtmlのファイルリストを作成し、 ファイル名・パス・ファイル内にh1が記述されているか、されている場合はなんと記載されているかを取得してリスト化(csv)したいです。 どのような方法が考えられるでしょうか? 当方Macを使用していて、規約で新しいアプリケーションをインストールできません。そのためアプリのインストールをしなくてもできる方法があればアドバイスいただきたいです。 どうかよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こういう事が要件ですか? [user@host ~/findtest]$ mkdir {1,2,3,4,5} [user@host ~/findtest]$ [user@host ~/findtest]$ touch {1,2,3,4,5}/{{a,b,c}.html,d.css,e.text} [user@host ~/findtest]$ [user@host ~/findtest]$ ls -R 1 2 3 4 5 ./1: a.html b.html c.html d.css e.text ./2: a.html b.html c.html d.css e.text ./3: a.html b.html c.html d.css e.text ./4: a.html b.html c.html d.css e.text ./5: a.html b.html c.html d.css e.text [user@host ~/findtest]$ [user@host ~/findtest]$ [user@host ~/findtest]$echo "h1 hoge" > 1/a.html [user@host ~/findtest]$ echo "h1 fuga" > 2/b.html [user@host ~/findtest]$ echo "h1 piyo" > 3/c.html [user@host ~/findtest]$ echo "h1 punyu" > 4/d.css [user@host ~/findtest]$ echo "h1 powa" > 4/e.text [user@host ~/findtest]$ echo "h1 powa" > 5/e.text [user@host ~/findtest]$ [user@host ~/findtest]$ [user@host ~/findtest]$find . -type f -name *.html -exec grep "h1" /dev/null {} \; ./1/a.html:h1 hoge ./2/b.html:h1 fuga ./3/c.html:h1 piyo [user@host ~/findtest]$ ~/findtest]$ find . -type f -name *.html -exec grep "h1" /dev/null {} \; | sed 's/ /,/g' ./1/a.html:h1,hoge ./2/b.html:h1,fuga ./3/c.html:h1,piyo [user@host ~/findtest]$ であれば、上記のように簡単です。 結果を [user@host ~/findtest]$find . -type f -name *.html -exec grep "h1" /dev/null {} \; | sed 's/ /,/g' > h1-result.csv とすれば、CSVに保存できます。 その他、ファイル名などが不要な場合でも、 少し工夫すれば簡単ですよね。

roid_moon
質問者

お礼

お礼が遅くなりましたがありがとうございます。

その他の回答 (1)

回答No.1

macならgrepコマンドが使えるのでは? 詳しくは以下を。 https://satopedia.com/grep-r-find-grep/

roid_moon
質問者

お礼

お礼が遅くなりましたがありがとうございます。

関連するQ&A