• ベストアンサー

ファイルの行数取得

超初心者です。 いま、表計算的なスクリプトを記述しています。 あるファイルの行数を取得する関数ってあるんでしょうか? ファイルに記述されている数値を足したり引いたりするのですが、forを使っての計算の際にファイルの行数が必要となりました。

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

  • ベストアンサー
  • proust
  • ベストアンサー率57% (62/108)
回答No.1

Perlにですね。ないはずです。 行数とはファイルに書かれた改行文字の個数ということなので 実際にファイルを全て読み込まないと行数はわかりません。 以下のように色々な方法があると思います #### 単純な例 $a = 0; open FD, "<file.txt" || die $!; while (<FD>) { $a++; } close FD; print "行数:$a\n"; ### 少しマニアックな方法 open FD, "<file.txt" || die $!; @a = <FD>; close FD; print "行数:" . ($#a + 1) + "\n"; ### 反則的方法(外部コマンド) ... UNIXの場合 print "行数:" . `wc -l file.txt` . "\n";

mikami-no-hire
質問者

お礼

ありがとうございました。 「単純な例」で進めていくことにしました。

その他の回答 (1)

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

#1でも仰っているように、ファイルを全部読んでみないことには、ファイルの行数はわかりません。 ファイルが読み終わっているなら $. で取得することができます。

関連するQ&A