私はデータベースを挿入するために大きなテキストファイルを解析するPHPスクリプトを書いています。しかし、私のホストでは、ファイルが大きすぎてPHPのメモリ制限に達しました。
ファイルの長さは約16,000行です。まず、ファイルを4つの別々のファイルに分割してロードできることを確認したいと思います。
私が得ることができた最初の部分head -4000 file.txt
。中間部分は少しトリッキーです。出力を()tail
にパイプしようとしていますが、他の/より良い方法はありますか?head
tail -4001 file.txt | head -4000 > section2.txt
実際、私のロジックはめちゃくちゃです。 2番目のセクションではこのようなものが必要で、次のセクションでは引数をtail -12001 file.txt | head - 4000
下げてください。tail
絡んでしまいました! :血
ベストアンサー1
めちゃくちゃにしたくありませんが、まだtail
andを使用して実行している場合は、行数を使用して最後の代わりに最初から呼び出すhead
便利な方法があります。tail
tail -n +4001 yourfile | head -4000
...しかし、特にファイル分割のためのより良い自動化ツールは次のとおりです。split
!また、GNU coreutilsの一部であるため、一般的なLinuxシステムにはこの機能が必要です。使用方法:
split -l 4000 yourInputFile thePrefixForOutputFiles
(man split
質問がある場合は確認してください。)