• ベストアンサー

Perlでファイルの列を削除する。

どのように書けばいいかわからないので教えてください。 ","で区切られたcsvファイルがあるとします。(file.csv) そのファイルは全部で5列ありますが、4列目と5列目は値が入っている場合と無い場合があります。(1~3列目は必ず値は存在します。) このファイルの1列目と2列目を削除して、3列目から5列目だけのファイルを作成したいのですが、どうすればいいのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

$line='a,b,c,d,,f'; ($first, $second, $rest) = split(/,/,$line,3); print $rest; みたいにすれば、3列目以降を$restにとりだせます。 3列目以降に値が入っていない列があっても大丈夫です。

steel_50130
質問者

お礼

$line='a,b,c,d,,f'; ($first, $second, $rest) = split(/,/,$line,3); print $rest; そっか。3つに区切って3つ目だけを取り出してやればいいんですね。 ありがとうございました!!

その他の回答 (3)

回答No.3

#1です。訂正。 >必要な行だけ出力する。 列ですね。

  • eberbach
  • ベストアンサー率14% (18/123)
回答No.2

配列変数に1行ずつデータがあるとして、単純なところでは・・・ foreachで回して必要な所だけで要素を構成して新しい配列変数に入れ、それをファイルに書き出すというのはどうか。

回答No.1

入力ファイルを一行読み込み、それを配列に蓄え必要な行だけ出力する。 @ar = split /,/, $sentence; print "$ar[2],$ar[3],$ar[4]"; みたいな。

関連するQ&A