csv - 按行数拆分 CSV 并保留标题
问题描述
我有这个命令按行数拆分 csv,line=
部分。但是这个 cmd 不保留原始文件的标题,我需要在那里有标题。你能帮我么?我发现我需要单独保留标题,然后以某种方式添加 n 行。
它加载output.csv
文件并在结果文件中每 33 行将其拆分一次,该文件output<number>.csv
在扩展名之前用数字调用,从 1 开始。
awk -v N=1 -v pre="output" -v suf=".csv" -v line=33 'NR%line==1{x=pre N suf ;N++} {print > x}' output.csv
如何保留标题并保留我的功能?
解决方案
假设 output.csv 是
header
1a
2a
3a
1b
2b
3b
1c
2c
3c
只需修复一点您的代码:
awk -v pre="output" -v suf=".csv" -v line=3 '
NR == 1 {
header = $0
next
}
NR % line == 2 {
close(x)
N++
x = pre N suf
print header > x
}
{
print > x
}
' output.csv
创建 3 个文件:
输出1.csv
header
1a
2a
3a
输出2.csv
header
1b
2b
3b
输出3.csv
header
1c
2c
3c
如果您写入许多文件,请不要忘记关闭。
推荐阅读
- python - Python 请求正文自动添加单引号
- node.js - Chrome 启动器以 UnhandledPromiseRejectionWarning 退出
- json.net - 如何使用 json.net 将此 JWT 反序列化为一个类
- dart - 使用 Flutter 在运行时更新资产文件内容
- r - 如何填写每月时间序列数据的缺失行?
- javascript - 我在网上找到的这个切换脚本仅适用于父 ID,但不适用于父母的孩子
- docusignapi - USER_LACKS_MEMBERSHIP Docusign Nodejs
- macos - 在通过自制软件安装的 macos 上访问 Rabbit MQ UI 时出错
- ruby-on-rails - Eager load 和 has_many 通过关联
- python - 如何拟合温度/热曲线的数据?