如何根据指定的行数拆分 CSV 文件?
- 2024-10-22 08:29:00
- admin 原创
- 77
问题描述:
我在 LINUX 服务器上存储了一个 CSV 文件(大约 10,000 行;每行有 300 列)。我想将此 CSV 文件拆分为 500 个 CSV 文件,每个文件有 20 条记录。(每个 CSV 文件的 CSV 标题与原始 CSV 文件的标题相同)
是否有任何 Linux 命令可以帮助这种转换?
解决方案 1:
使用 Linux split 命令:
split -l 20 file.txt new
将文件“file.txt”拆分为以名称“new”开头的文件,每个文件包含 20 行文本。
在 Unix 提示符下输入man split
更多信息。但是,您必须先从 file.txt 中删除标题(tail
例如,使用命令),然后将其重新添加到每个拆分文件中。
解决方案 2:
将其变成一个函数。您现在可以调用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
sed -i -e "1i$HEADER" "$i"
done
}
发现于: http: //edmondscommerce.github.io/linux/linux-split-file-eg-csv-and-keep-header-row.html
解决方案 3:
单行 csv 拆分器,保留每个拆分文件中的标题行。此示例为每个文件提供 999 行数据和一个标题行。
cat bigFile.csv | parallel --header : --pipe -N999 'cat >split_file_{#}.csv'
有关安装 parallel 的提示,请参阅https://stackoverflow.com/a/53062251/401226,其中的答案包含有关为 macos 和 Debian/Ubuntu 安装正确版本的 parallel 的评论(在 ubuntu 中使用专门命名的 parallel 包,它比 moreutils 中捆绑的包更新)
解决方案 4:
这应该有效!
file_name
= 您要拆分的文件的名称。
10000
= 每个拆分文件包含的行数
file_part_
= 拆分文件名的前缀(file_part_0、file_part_1、file_part_2……等等)
split -d -l 10000 文件名.csv 文件部分
解决方案 5:
这应该可以帮你搞定——你的所有文件最终都会被命名为 Part1-Part500。
#!/bin/bash
FILENAME=10000.csv
HDR=$(head -1 $FILENAME) # Pick up CSV header line to apply to each file
split -l 20 $FILENAME xyz # Split the file into chunks of 20 lines each
n=1
for f in xyz* # Go through all newly created chunks
do
echo $HDR > Part${n} # Write out header to new file called "Part(n)"
cat $f >> Part${n} # Add in the 20 lines from the "split" command
rm $f # Remove temporary file
((n++)) # Increment name of output part
done
解决方案 6:
这个问题是很多年前提出的,但对于未来的读者,我想提一下,最方便的工具是xsv
来自https://github.com/BurntSushi/xsv
子命令split
旨在执行原始问题中要求的操作。文档中写道:
split - Split one CSV file into many CSV files of N chunks
每个分割块都保留标题行。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件