我已经将CSV文件(大约10,000行;每行具有300列)存储在LINUX服务器上。我想将此CSV文件分解为500个CSV文件,每个文件20条记录。(每个具有与原始CSV中相同的CSV标头)
有什么linux命令可以帮助这种转换吗?
使其成为一个函数。您现在可以打电话splitCsv <Filename> [chunkSize]
splitCsv <Filename> [chunkSize]
splitCsv() { HEADER=$(head -1 $1) if [ -n "$2" ]; then CHUNK=$2 else CHUNK=1000 fi tail -n +2 $1 | split -l $CHUNK - $1_split_ for i in $1_split_*; do echo -e "$HEADER\n$(cat $i)" > $i done }
发现于:http : //edmondscommerce.github.io/linux/linux-split-file- eg-csv-and-keep-header-row.html