一尘不染

如何按照指定的行数拆分CSV文件?

linux

我已经将CSV文件(大约10,000行;每行具有300列)存储在LINUX服务器上。我想将此CSV文件分解为500个CSV文件,每个文件20条记录。(每个具有与原始CSV中相同的CSV标头)

有什么linux命令可以帮助这种转换吗?


阅读 787

收藏
2020-06-03

共1个答案

一尘不染

使其成为一个函数。您现在可以打电话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

2020-06-03