• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSVファイルの処理方法)

PerlでCSVファイルの処理方法

このQ&Aのポイント
  • Perlを使用してCSVファイルの処理方法について教えてください。
  • CSVファイルをCygwinコマンド上で指定の数値まで表示する方法について教えてください。
  • CSVファイル(data1.csv)の3行目までの数値をCygwinコマンド上に表示するプログラムを教えてください。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

この例だとCSVとか列とか全然関係無いですね。 常套手段として方針は2つ (1)先に3行だけのCSVにする (2)Perlで3行だけ (1)なら、Cygwinの(というか、UNIX系OSで標準的な) headコマンドとセットにして head -3 data1.csv | perl test1.pl # headコマンドがなんだかわからなければ、man head を実行してみる。 # | (パイプ)がなんだかわからなければ、「標準入出力」「リダイレクト」「パイプ」あたりで検索して概念を覚えておくといろいろ便利 (2)なら、#1を参考に。

cstag
質問者

お礼

回答ありがとうございます。 headコマンド、 | (パイプ)も教えて頂きありがとうございます。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>CSVファイル(data1.csv)の3行目までの数値だけをCygwinコマンド上に表記したい場合、どのようにプログラムすればよいのですか。 意味が不明です。次のうちどれですか? 1.データをコマンドライン上で指定したい 2.データをファイルから読むのだが、ファイルのデータの前に3行分だけコマンドラインで指定したい 3.その他 1.の場合 $ ( echo -5,1; echo -4,2; echo -3.1 ) | perl test1.pl 2.の場合 $ ( echo -5,1; echo -4,2; echo -3.1; cat data1.csv ) | perl test1.pl

cstag
質問者

お礼

回答ありがとうございます。 説明が良くなかったのですが、、、 やりたかったことは、CSVファイルのA列B列記載の数値を、(全ての行ではなく)3行目までコマンド上に表示です。

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>3行目までの数値だけをCygwinコマンド上に表記したい場合 whileループで何行目まで処理したかカウントして、必要な行数処理したらループから抜ける。 $line = 0; while ($_=<stdin>){  print"$_\n";  $line++;  if($line == 3) last; } みたいな感じでしょうか。 まぁ、そういう場合ならforループにすると思いますが。 for($line = 0;$_=<stdin> && $line < 3;$line++) {  print"$_\n"; } でしょうかね。 CSVファイルかどうかは関係ないみたいですが……。

cstag
質問者

お礼

回答ありがとうございます。 上記プログラムで実行出来ました。

関連するQ&A