You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Shell命令/脚本或Google Sheets按每100行拆分CSV文件?

两种方案实现CSV文件按行数拆分

不管你是明确知道总行数,还是不确定具体行数,下面两种方案都能帮你把CSV拆分成每100行一个文件(最后一个文件自动存放剩余行):

一、Shell命令/脚本方案

这个方案适合在Linux/macOS终端、Windows WSL环境下操作,处理大文件效率拉满,完全不需要手动干预。

1. 已知总行数(比如你的333行案例)

直接用split命令就行,它是专门用来拆分文件的工具:

split -l 100 --numeric-suffixes=1 --additional-suffix=.csv longlist.csv split_

参数解释:

  • -l 100:指定每100行拆成一个文件
  • --numeric-suffixes=1:拆分后的文件后缀从1开始计数(比如split_1.csv、split_2.csv)
  • --additional-suffix=.csv:给拆分后的文件自动加上.csv后缀
  • 最后两个参数分别是源文件名和输出文件的前缀

执行后你会得到:

  • split_1.csv(1-100行)
  • split_2.csv(101-200行)
  • split_3.csv(201-300行)
  • split_4.csv(301-333行)

2. 未知总行数

上面的split命令完全通用,不管你的源文件有多少行,它都会自动把最后剩余的行放到最后一个文件里,直接跑上面的命令就好。

如果你的CSV有表头需要保留,可以用下面的脚本先提取表头,再拆分内容,最后把表头合并到每个拆分文件中:

# 提取表头到临时文件
head -n 1 longlist.csv > header.csv
# 拆分除表头外的所有内容
tail -n +2 longlist.csv | split -l 100 --numeric-suffixes=1 --additional-suffix=.csv - split_
# 给每个拆分文件添加表头
for file in split_*.csv; do
  cat header.csv "$file" > temp.csv && mv temp.csv "$file"
done
# 删除临时表头文件
rm header.csv

二、Google Sheets可视化方案

如果习惯用图形化工具操作,Google Sheets也能轻松搞定,步骤如下:

  1. 打开Google Sheets,导入你的longlist.csv(点击「文件→导入→上传」选择文件)
  2. 假设数据从A1单元格开始(有表头的话A1就是表头行,没有则直接是第一行数据)
  3. 创建第一个拆分表:
    • 点击底部加号新建工作表,命名为Split1
    • 在A1单元格输入公式:=INDEX(longlist!A:D,ROW(A1),COLUMN(A1)),向右拉到D列,再向下拉到第100行,就能拿到前100行数据
  4. 创建第二个拆分表:
    • 新建工作表Split2,A1单元格输入:=INDEX(longlist!A:D,ROW(A1)+100,COLUMN(A1)),同样拉到D100,拿到101-200行
  5. 第三个拆分表Split3:
    • A1公式:=INDEX(longlist!A:D,ROW(A1)+200,COLUMN(A1)),拉到D100,拿到201-300行
  6. 最后一个拆分表Split4:
    • A1公式:=INDEX(longlist!A:D,ROW(A1)+300,COLUMN(A1)),拉到D列直到出现空行,剩下的就是31-33行数据
  7. 导出每个工作表为CSV:进入对应工作表,点击右上角「文件→下载→逗号分隔值(.csv)」即可

如果总行数不确定,可以先在源表用=COUNTA(A:A)算出总行数,再根据总数计算需要的拆分表数量,公式里的偏移量改成(表序号-1)*100就行(比如第n个表的偏移量是(n-1)*100)。


内容的提问来源于stack exchange,提问作者citizen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:30:22