• ベストアンサー

大容量テキストファイルから任意の部分だけ抜き出すには??

テキストファイルから任意の部分だけ抜き出したいです。 試行錯誤しているのですが、正直もうお手上げで。。 やることとしては、元ファイルがshiftjisなので、UTF8に変換し、処理を行う感じになると思っています。 ソースは以下のように書き、syntaxOKなのですが、実際に結果を出力するテキストファイルは0BYTEなので訳がわかりません。。 ソースは以下のような感じです。 何かヒントを頂けないでしょうか。 #!/usr/bin/perl use Encode::JP; use warnings; open READ, '<:encoding(shiftjis)', 'テキストファイル名'; open WRITE, '>:encoding(utf8)', 'テキストファイル名2'; while(my $data = <READ>){ ($data,"shiftjis","utf8"); printf WRITE; }; close WRITE; close READ; open PAY, 'テキストファイル名2'; while (<PAY>) { printf if /^"抜き出したい文字列(開始)"$/ .. /^"抜き出したい文字列(終了)"$/ and !/^(?:"抜き出したい文字列(開始)"|"抜き出したい文字列(終了)")$/; };

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

それもそうだけど ($data,"shiftjis","utf8"); の部分がすごく謎だと思う>#1.

その他の回答 (1)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

while(my $data = <READ>){ ($data,"shiftjis","utf8"); printf WRITE; }; もしこれが写し間違いでないのなら、WRITEのあとに出力対象がないので ファイルになにも書かれないのではないでしょうか。