• ベストアンサー

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

ローカルのディレクトリ内に、大量の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

  • Perl で ディレクトリ及びサブディレクトリの容量を取得したい

    Perlについて質問します。 Perlで特定のディレクトリ及び、サブディレクトリ全てのファイルの容量を取得する方法についてです。 opendir、readdir関数を使用し指定した階層の合計が表示できたが、それより1つ下の、サブディレクトリはファイルを読み込めませんでした。 どうすればサブディレクトリのファイルも読み込んでもらえるでしょうか。 よろしくお願いします。

  • サブディレクトリからファイルやディレクトリを上の階層へ移動する.2

    D=ディレクトリ(フォルダ) F=ファイル D1 ├ D2 │ └ F1 └ D3   └ D4     ├ F2     └ F3 先ず例えば指定したディレクトリをD1とした場合、 D2、D3、はディレクトリとみなしサブディレクトリは D2、D3、以降に保存されているディレクトリをサブディレクトリとみなします。 この場合D4がサブディレクトリにあたるという事になります。 保存されているファイル、フォルダの階層がこの様な内容だった場合、 サブディレクトリであるD4から、F2、F3を上の階層へ移動させる(D3へ移動させる)方法を探しています。 D1 ├ D2 │ └ F1 └ D3   ├ F2   ├ F3   └ D4 ↑ちなみに作業終了後はこのような状態になっていれば良い。 尚、その際D4は削除されてもされなくとも構いません。 このような階層内容のフォルダが複数あるので 指定したディレクトリに対しこのような動作を自動的に行ってくれると望ましい。 若干分かり難いかもしれませんが、この様な動作や 又、似たような動作を指定したディレクトリに対し行ってくれるツールや方法を探しています。 ご存知の方、心当たりのある方、回答していただけると幸いです、よろしくお願いします。 以前も似たような質問をしたのですが解決に至る回答は得られませんでした。 なので再度質問させてもらいました、何卒よろしくお願い致します。

  • cssからのファイル参照

    いつもお世話になります。 cssからのファイル参照についてです。 画像ファイルなどは、 http://oshiete1.goo.ne.jp/qa2965601.html にも記載されているように >CSSファイルがある階層からのパスです。 >HTMLファイルがある階層からのパスではないです。 と、いうことですが、 カーソルの場合 cursor: url(aaa.cur) この、 aaa.cur ファイルは、 *.htmlファイルがある階層からのパスとなるのでしょうか。 また、もし、そうなら *.html ファイルの位置によりcssを切り替えるか、 *.html ファイルに毎回記載することになると思うのですが、 めんどうなこととなります。 *.cssファイルに独自カーソルの参照フォルダを設定することなどできないものでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • サブディレクトリ名、フォルダ構造のみをテキスト出力したい

    ディレクトリ以下のサブフォルダ、 階層5階層ぐらいまでですが、それらを全て テキストに出力、もしくはテキストにコピペしたいです。 ファイルをコピーしなくて、ディレクトリをコピーしなくて、ディレクトリ「名」のみクリップボードか、TXTに記録できるものを探しています。 できればフルパスでの場合と、フルパスじゃなくフォルダ名のみをコピーできる場合、分けてできるソフトがベストです。 サブフォルダも分析してくれるというのをとにかく探しています。フォルダの「構造」には特に拘っていません、フルパスでそれは十分なんですが・・ よろしくお願いします。

  • ファイルとディレクトリの見分け方は?

    環境  WindowsXP、Apache2.0.47、PHP4.3.2で使用しています。 質問  関数readdir($dh)で指定されたパスのファイルとディレクトリのリストを取得しています。  両方が存在していた場合、ファイルとディレクトリを見分けるためにはどのようにしたら良いのでしょうか?  都合の良い関数は無いように思ったのですが... よろしくお願いします。

    • ベストアンサー
    • PHP
  • CSVファイルを任意のディレクトリに作成する方法につきまして

    CSVファイルを任意のディレクトリに作成するマクロを 作成しております。抜粋は下記です。 '(1)ディレクトリを指定するダイアログ表示(初期ファイル名はwOutputFileName) Application.Dialogs(xlDialogSaveAs).Show wOutputFileName '(2)ディレクトリのパスを取得 Current_path = CurDir '(3)wOutputFileNameにパスを代入 wOutputFileName = Current_path & "\" & wOutputFileName その後、(3)のファイルをオープンし、CSVとするデータを登録します。 ところが、(1)での指定で、自分の元ファイル(マクロのエクセルファイル)が名前をwOutputFileNameに変えて保存されるため 「書き込みができません」 というエラーが発生します。 作成したCSVファイルをダイアログにてディレクトリを 指定して保存する方法を教えていただけませんか? よろしくお願いいたします。

  • ディレクトリ内のCSVファイル一括削除について

    ディレクトリ内のCSVファイルを一括削除したのですがうまくいきません。 下記のように記述しているのですが。 unlink($path/*.csv);

    • ベストアンサー
    • Perl
  • HTMLのディレクトリの作り方がよくわからない・・

    アップロードしようとして、サーバーも用意して、 あとはffftpでアップロードするだけなんですけど、そのディレクトリの作り方がわかりません。 今のフォルダの構造は、 【第一階層】              【第二階層】 rootフォルダ------------------>cssフォルダ>CSS index.html                imagesフォルダ> imagesフォルダ>画像データ                                   pageフォルダ>画像データ です!!このままサーバー内に入れたのですが、うまく表示されません。 サーバー内のHTMLを見ると、構造が崩れているので、ディレクトリの作り方が 悪いのだと思うのですが、どのようにしたらよいでしょうか? なかなかディレクトリ構造の詳細が書かれたサイトが見あたらないため、こちらで ご教授願います。宜しくお願い致します。 ちなみにHTML作成は初心者なので、わかりやすい単語でお願いします。  

  • ディレクトリの分からないファイルのパスを調べる

    php 5.2.8 Linux です。 ディレクトリの分からないファイルのパスを調べたいです。 glob("*/ファイル名")やrealpath("*/ファイル名")などとしましたが 出てきません。ディレクトリにワイルドカードは使えないのでしょうか? 別の方法でも良いのでphpでディレクトリの分からないファイルのパスを調べる方法があればお教え願います。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • FC2HPサービスでのファイルマネージャーについて

    ローカルでHPが出来上がりFC2のサーバー(ファイルマネージャー)でアップを試みたのですが、いろいろなQ&Aを検索しても理解できずに困っています。 ローカルではhomepegeフォルダの中にindex.htmlとimageフォルダとcss.cssのカスケードスタイルシートの3つが存在します。 imageフォルダにはHPで使用する画像がgifで保存してあります。 これをFC2の管理画面からroot階層にindex.htmlを上書きし(最初から用意されているので)同じroot階層にcss.cssをアップ、更に同rootにimageと名前を付けたディレクトリを新しく作成しました。 ですのでrootには既存のiフォルダも入れて3つのフォルダと1つのcssとなります。 imageフォルダを選択するとimageディレクトリの画面になりそこにimageファイルの中の画像をアップしました 結果はcssも画像も反映しておりません(HTMLで記述した箇所だけ反映されています) ファイルマネージャーの使い方が善く理解できていないのと恐らくは階層が違うと思うのですが cssとimageの中の画像はどの階層にアップしたらよいのでしょうか? ローカルではブラウザで確認しましても問題無く完成しております 御教授宜しくお願い致します。