大きなCSVをチャンクに分割するコマンド - 改行を使用する

大きなCSVをチャンクに分割するコマンド - 改行を使用する

私はこのコマンドを使って大きなCSVファイルを小さな塊に分割しますsplit。各ファイルには以下を含める必要があります。たった1000行。

私が使用するコマンドは

cat large.csv | split -a3 -l1000  --filter='gzip > $FILE.gz' - small.csv_

うまくいきますが、問題はCSVに改行文字があり、行1000から出るとすべてが中断されることです。

たとえば、

Row no 1000:

1001 | my_first_name | my_last_name | Address: 2001,appartment
my_city | my_country | pin-610156

4列には改行文字があり、2行を占めます。分割コマンドは、1000行が終了し、次の行が新しいファイルAddress: 2001,appartmentに移動すると仮定します。これにより、2つのファイルが破損します。

  1. 1000行のファイル - 残りの列なし(ファイル:10と仮定)
  2. 次のファイル(ファイル11)my_city- 最初の4つの列はここで始まりません。

このファイルをデータベースにロードすると問題があります。

この問題を解決する方法や回避策はありますか?

関連情報