~80,000 行を含むファイルに問題があります。23Gbの大容量ファイルです。次のコマンドを使用して、そのサイズの同様のファイルをチャンクアップすることができました。
awk '{fn = NR % 24; print > ("file1_" fn)}' file1
ただし、このコマンドは、この 1 つの問題のあるファイルで停止します。問題のファイルには 30 億文字の非常に大きな行があり (他のファイルの最長行は 10 億未満)、これが問題であると推測しています。
この長い行をファイルから削除して続行したいのですが、これは難しいことがわかっています。私は単に以下を使用するだけでうまくいきます
awk 'length < 1000000000' file1 > file2
ただし、これも 3.5 時間後も実行されています。ファイルを調べて、行の文字数のカウントがたとえば 10 億を超えた瞬間に、カウントを停止して次の行に移動する簡単な方法はありますか?