data.csvファイルをほぼ同じ10個のサイズに分割してください、という内容のものです。
但し各10個のファイルそれぞれにヘッダーは必要で、32KBを超えてはいけないという制約があります。
ワンライナーは苦手なのでシェルを書くことにしました。
1$ vim split.sh
をしてシェルファイルを作成し、以下のコードを記述しました。
問題なく完了できたのでよしとします。
1#!/bin/bash
2
3input="/home/admin/data.csv"
4dir="/home/admin"
5
6# ヘッダー取得
7header=$(head -n 1 "$input")
8
9# ヘッダーを除いた10個のファイルに分割するための準備
10tail -n +2 "$input" > "$dir/body.tmp"
11body_size=$(wc -c < "$dir/body.tmp")
12chunk_size=$(( body_size / 10 ))
13
14# ファイル分割
15split -b "$chunk_size" -d -a 2 "$dir/body.tmp" "$dir/data-"
16
17# 分割したファイルにヘッダーをつける
18for f in "$dir"/data-[0-9][0-9]; do
19 new_file_name="${f}.csv"
20 { echo "$header"; cat "$f"; } > "$new_file_name"
21 rm "$f"
22done
23
24rm "$dir/body.tmp"