CSVファイルの分割中に問題が発生しました。

CSVファイルの分割中に問題が発生しました。

次のコマンドを使用してcsvファイルを複数のファイルに分割しようとしています。コマンドは5つのファイルに分割されますが、ファイルの1つのデータが切り捨てられます。

この問題をどのように解決できますか?

>>split -n 5 -d -a 2  testfile

私の入力には5001行がありますが、次のように分割されます。

file1 - 932
file2 - 910
file3 - 1149
file4 - 1044
file5 - 966

各ファイルは1000行でなければなりませんか?

ベストアンサー1

split -n 5最後の部分を除くすべての部分が同じ量になるようにファイルを5つの部分に分割します。バイト

行境界でのみ分割するには、次のようにします。

split -n l/5 -d -a 2  testfile

これはGNUドキュメントsplit次のように:

'-n Chunks'
'--number=chunks'
     入力をチャンク出力ファイルに分割します。ここでチャンクは次のとおりです。

          n      generate n files based on current size of input
          k/n    only output kth of n to stdout
          l/n    generate n files without splitting lines
          l/k/n  likewise but only output kth of n to stdout
          r/n    like ‘l’ but use round robin distribution
          r/k/n  likewise but only output kth of n to stdout

別のオプションは、各出力ファイルに必要な行数を指定することです。

split -l 1000 -d -a 2  testfile

上記はファイルを複数のセクションに分割し、各セクション(最後のセクションを除く)には1,000行があります。これは次のように文書化されています。

'-llines'
'--lines=lines'
     各出力ファイルに行を置きます。

おすすめ記事