• 締切済み

excel→txtファイル作成時、セル間にできることがある「”」を指すメタ文字

Perlで書いたプログラムでデータファイルを用いるため、Excel→txt形式(タブ区切り)でファイルを保存し、perlでそのテキストファイルのデータをprintしてみると、セルとセルの間に「”」というような記号が入ってしまうことがあります。 これをsplitで省くことはできますでしょうか?その際に用いるメタ記号も教えていただけないでしょうか?各要素を取り出すためにいい方法があれば教えてください。 (1)元のExcelファイル id 2000 2001 2003 001 A_IN A_IN B_IN 002 B_IN B_IN OUT (2)テキストファイル(タブ区切りで保存) id 2000 2001 2003 001 A_IN A_IN B_IN 002 B_IN B_IN OUT (3)以下のようなperlプログラムでprint表示させると「"」という記号が入ってしまい、要素ごと(例えばA_IN、OUT)にデータ処理を行うことができません。 「プログラム」 #import txt file my $errmsg = "can not open $data\n"; my @data0; open(FID, $data) or die $errmsg; chomp(@data0 = <FID>); close FID; my $number = @data0; for (my $i=1; $i<$number; $i++) { my @a = split(/\r/, $data0$i]); my @b = split(/\t/, $a[0]); print @b, "\n"; ←このprintの結果が以下のようになります。 print $b[0], "\n"; ←そのため、タブによるsplitがうまく print $b[1], "\n";  出来ておらず、これらの値も変 print $b[2], "\n";  なものが出力されてしまいます・・・。 print $b[3], "\n"; } 「結果」 001A_IN"A_IN"B_IN 002B_IN"B_IN"OUT (「”」が入る位置は何回か試したところ、変わることがありました。)

みんなの回答

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

タブ区切りの前に、下記の要領で取り除けないでしょうか? my @a = split(/\r/, $data0$i]); $a[0] =~ s/\"//g; my @b = split(/\t/, $a[0]);

kooru
質問者

お礼

ありがとうございます!早速連休明けに試してみます。

関連するQ&A