• ベストアンサー

サーバーのログデータを抽出

redhat8.0のサーバー上にあるログデータをホームディレクトリにコピーし、コピーされたファイルの中のログデータをperlの正規表現を使って抽出し、抽出されたデータを別ファイルに書き出したいのです。 初心者なのでわかりやすく回答していただけると助かります。

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

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

やり方は色々あって、バージョンや使用モジュール等によっても違うと思いますが、だいたい、次のような感じでやればいいと思います。 system("cp *.log ."); の様にコマンドを実行することができます。 cpコマンドは知ってますよね。 open(IN, "error.log"); open(OUT, "select.data"); でファイルを関連ハンドル(上記でいうIN,OUT)に関連づけます。 while(<IN>){ #の様にファイルから読み出します。 if(/selectPattern/){ #正規表現でマッチングさせます print OUT $_ ; #マッチングした行を出力します } } close(IN); close(OUT); #使ったファイルをクローズします のような感じでやればいいと思います。 複数のファイルを扱うなら、グロブを使うか、コマンドラインから標準入力としてインプットを作るのがいいかと思います。 余計ですけど、Perlでファイルを最初にコピーしてくる理由がわかりません。

spiceboyz
質問者

補足

最初のファイルのコピーはperlによってではありません。 端末の方から手動でコピーする予定です。

すると、全ての回答が全文表示されます。

関連するQ&A