こんばんは。
最近Rubyでファイルのスクローリングをしているのですが、
以下のようなスクリプトを全てのファイルに適用したいと考えています。

1 fpath = '/home/edinet/E30479/S1002D1W/index.html'
2
3 text = ""
4
5
6 File.open(fpath).each do |f|
7 f.each_line do |line|
8
9 line.gsub!(/前事業年度特定投資株式/,"前事業年度")
10 line.gsub!(/当事業年度特定投資株式/,"当事業年度")
11
12 end
13 end
14
15
16 flag = nil
17 IO.foreach(fpath) do |line2|
18
19 case line2
20 when /保有目的が純投資目的以外/
21 flag = true
22 when /保有目的が純投資目的/
23 flag = false
24 end
25
26 text << line2.chomp if flag == true
27 end


Dir.globなどを使えば良いと思うのですが、具体的にはどのように記述すればよいのでしょうか?
ご教授の程お願い致します。

A 回答 (2件)

あと、このプログラム、なんか変ですよ?



File.open(fpath).each

ここのeachって変ですよね。

f.each_line do |line|
line.gsub!(/前事業年度特定投資株式/,"前事業年度")

ここでの 変数lineに入っているのは、「ファイルから読み込んだ文字列」です。
ファイルの内容をメモリ上にコピーしたものです。
これを変更しても、元のファイルは変更されません。

また、一行読み込む度に次の行の内容になるので、gsubした結果はどこにも残りません。
    • good
    • 0

> Dir.globなどを使えば良いと思うのですが



そう思ったら、マニュアルとかで調べてみましょう。
http://docs.ruby-lang.org/ja/2.1.0/class/Dir.htm …

ディレクトリを再帰的に走査するUnixのコマンドがあります。
「 find 」と言います。
このことを知っていれば、Rubyにも同じようなものは無いか、探してみようと思うはずです。
http://docs.ruby-lang.org/ja/2.1.0/library/find. …

これらを使って見つけたファイル`パスをfpathに代入して、実行するようにします。
このスクリプト全体をループの中に入れてもいいですが、このスクリプトを関数として定義して、fpathは引数として与えるようにするのがよいでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!

  • 好きだけどケンカばかり……そんな彼との結婚は?

    やたらとケンカが多いカップルというのはいる。それでも腐れ縁なのか長く交際し、いざ結婚しようと決めたときに、ふと思い悩む。こんなにケンカが多いのに、結婚して大丈夫? と。今回は「教えて!goo」に寄せられ...

  • ポンコツな日々:第125話「食べてもOK」

    日々のちょっとしたヘンな出来事を、1話完結形式の4コマで綴っていきます。時にするどく、時にやんわり、ありそうで無さそうな日常の1コマを切り取ってお届けします。

  • “罵声大会”に怒り心頭?名指しで苦情も……駅員泣かせの鉄道ファン

    時として人は趣味に没頭してしまうと、周囲に迷惑をかけてしまいがち。それが公共の場ならばなおさらである。「教えて!goo」に「何で鉄道ファンはマナーの悪い人が多いのでしょうか?」との質問を見つけた。鉄道愛...

  • たまランチ:第102話「ネコ好き」

    外ランチを愛してやまない元気な女子社員・たまちゃん(26)。オシャレなお店より「安くておいしい」お店が大好き! そんな女子力低めなたまちゃんの、色気より食い気な日々をつづります。

  • エルフ田さん:第125話「洗濯干しの『コツ』」

    エルフ(ファンタジーとかに出てくる長寿の種族)の「エルフ田」と、ただの人間である女子社員2人による日常ギャグ。エルフならではのズレたツッコミでバシバシ人間界の話題を斬っていきます。

おしトピ編集部からのゆる~い質問を出題中

お題をもっとみる

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ