2009-03-05 12 views
0

出力に無数の行を生成するいくつかのコードがあります。ですから、これらの値を1つの出力ファイルに保存することはできません。長い入力を複数のテキストファイルに分割する

代わりに、出力ファイルを複数のファイルに分割しました。私はインデックス番号に従ってファイルを分割しています。私の疑問は、私のファイルがどれくらいの数になるのか分からないことです。それで、インデックスを与えずにファイルを別の出力に分割することは可能ですか?たとえば:n.txtの次の200,000 100,001からm.txt

    • 最初の100,000行
  • +0

    あなたはbashだけを使用していますか? – dusoft

    +0

    はい、使用している言語を知っておくと便利です。 –

    答えて

    1

    あなたはに基づいて特定の行を見つけることができるようにする必要がない場合ファイル名を入力すると、ファイルサイズに基づいて出力を分割できます。次の行が1MBを超えるまでm1.txtに行を書いてください。次のファイル(m2.txt)に移動します。

    0

    実行中のインデックスを持つファイルを生成します。例: m_000001.txt。そのファイルに固定された数行の行を書き出します。ファイルを閉じます。次のファイルを開く。 m_000002.txtと入力して続行します。

    ディスクがオーバーフローしていないことを確認することは、ハウスキーピングのタスクを別途行うことです。ここでは、バックアップ、圧縮、ファイルの回転などを考えることができます。

    0

    この目的でlogrotateを使用するとよいでしょう。それにはたくさんのオプションがあります:マニュアルページを調べてください。

    "logrotate is designed to ease administration of systems that generate 
    large numbers of log files. It allows automatic rotation, compression, 
    removal, and mailing of log files. Each log file may be handled daily, 
    weekly, monthly, or when it grows too large." 
    
    1

    スプリット(1)は正確にあなたの仕事のためのツールであることが表示されます。

    はここでmanページのご紹介です。書き込み中に分割する

    0

    4つの方法:

    A)は、(サイズ)

    B)は

    を書き込む前に、時間間隔を固定)ライン

    Cの何を修正文字のないを修正しませんD)書き込みを呼び出す前の関数の固定カウンタ

    これらの分割に基づいて、出力ファイルに名前を付けることができます。

    関連する問題