- ベストアンサー
大容量テキストファイルから任意の部分だけ抜き出すには??
テキストファイルから任意の部分だけ抜き出したいです。 試行錯誤しているのですが、正直もうお手上げで。。 やることとしては、元ファイルが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 !/^(?:"抜き出したい文字列(開始)"|"抜き出したい文字列(終了)")$/; };
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
それもそうだけど ($data,"shiftjis","utf8"); の部分がすごく謎だと思う>#1.
その他の回答 (1)
- sakusaker7
- ベストアンサー率62% (800/1280)
while(my $data = <READ>){ ($data,"shiftjis","utf8"); printf WRITE; }; もしこれが写し間違いでないのなら、WRITEのあとに出力対象がないので ファイルになにも書かれないのではないでしょうか。