• ベストアンサー

ログファイルの中から1行だけ削除。

cgiを使用してファイルの削除を行いたいのですが、***.htmlなどファイル単位で指定するものは できたのですが、logファイルの中にある、任意の1行だけを削除したい場合はどうしたらいいのでしょうか?

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

  • ベストアンサー
  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.1

Perlではファイル内の位置を指定することが出来ません。 一度、配列にデータを入れてからその行の配列のみを削除して, その削除後の配列をもう一度ファイルに保存します。

KODAMAR
質問者

お礼

回答ありがとうございます。 ログファイルの中身全部を配列に。→その中から任意のものだけ削除→削除された後の残ったデータをログファイルへ戻す(上書き) というような流れでしょうか?

その他の回答 (3)

  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.4

>こんなことしたら、メモリ不足になってしまいますよ。 データ量が多い場合はそうですね。 ただ、Perlでのファイルデータ操作の一般的な方法として説明しました。 掲示板などはこの方法を用いています。 データ量が多い場合はファイルの分割やデータベースの活用などの対策を講じた方が良いですね。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.3

>ログファイルの中身全部を配列 こんなことしたら、メモリ不足になってしまいますよ。 (ログファイルの大きさにもよるけど)

  • wolfwood
  • ベストアンサー率50% (199/398)
回答No.2

>ログファイルの中身全部を配列に。→その中から任意のものだけ削除→削除された後の残ったデータをログファイルへ戻す(上書き) その通りです。

関連するQ&A