- ベストアンサー
Perlでファイルの列を削除する。
どのように書けばいいかわからないので教えてください。 ","で区切られたcsvファイルがあるとします。(file.csv) そのファイルは全部で5列ありますが、4列目と5列目は値が入っている場合と無い場合があります。(1~3列目は必ず値は存在します。) このファイルの1列目と2列目を削除して、3列目から5列目だけのファイルを作成したいのですが、どうすればいいのでしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
$line='a,b,c,d,,f'; ($first, $second, $rest) = split(/,/,$line,3); print $rest; みたいにすれば、3列目以降を$restにとりだせます。 3列目以降に値が入っていない列があっても大丈夫です。
その他の回答 (3)
- lelelelele
- ベストアンサー率12% (9/70)
回答No.3
#1です。訂正。 >必要な行だけ出力する。 列ですね。
- eberbach
- ベストアンサー率14% (18/123)
回答No.2
配列変数に1行ずつデータがあるとして、単純なところでは・・・ foreachで回して必要な所だけで要素を構成して新しい配列変数に入れ、それをファイルに書き出すというのはどうか。
- lelelelele
- ベストアンサー率12% (9/70)
回答No.1
入力ファイルを一行読み込み、それを配列に蓄え必要な行だけ出力する。 @ar = split /,/, $sentence; print "$ar[2],$ar[3],$ar[4]"; みたいな。
お礼
$line='a,b,c,d,,f'; ($first, $second, $rest) = split(/,/,$line,3); print $rest; そっか。3つに区切って3つ目だけを取り出してやればいいんですね。 ありがとうございました!!