テキストファイル行の中央部分を抽出しますか?

テキストファイル行の中央部分を抽出しますか?

私はデータベースを挿入するために大きなテキストファイルを解析するPHPスクリプトを書いています。しかし、私のホストでは、ファイルが大きすぎてPHPのメモリ制限に達しました。

ファイルの長さは約16,000行です。まず、ファイルを4つの別々のファイルに分割してロードできることを確認したいと思います。

私が得ることができた最初の部分head -4000 file.txt。中間部分は少しトリッキーです。出力を()tailにパイプしようとしていますが、他の/より良い方法はありますか?headtail -4001 file.txt | head -4000 > section2.txt

実際、私のロジックはめちゃくちゃです。 2番目のセクションではこのようなものが必要で、次のセクションでは引数をtail -12001 file.txt | head - 4000下げてください。tail絡んでしまいました! :血

ベストアンサー1

めちゃくちゃにしたくありませんが、まだtailandを使用して実行している場合は、行数を使用して最後の代わりに最初から呼び出すhead便利な方法があります。tail

tail -n +4001 yourfile | head -4000

...しかし、特にファイル分割のためのより良い自動化ツールは次のとおりです。split!また、GNU coreutilsの一部であるため、一般的なLinuxシステムにはこの機能が必要です。使用方法:

split -l 4000 yourInputFile thePrefixForOutputFiles

man split質問がある場合は確認してください。)

おすすめ記事