csv - 合并 2 个 csv 文件并从批处理文件中填充空值
问题描述
我必须合并 2 个 CSV 文件并使用批处理文件用默认值填充空列。
看下面的例子:
文件 1.csv:
ColumnA ColumnB ColumnC ColumnD
文件 2.csv:
ColumnA
所以我需要合并 File2 中的 ColumnA 但没有任何重复,所以我需要检查 File2 中的 ColumnA 值是否不在 File1 中的 columnA 上,然后将其添加到 File1 中。
然后,当它将 ColumnA File2 中的值添加到 ColumnA File1 时,我需要将 file1 的 BC 列和 D 列的值设置为默认值,例如“DefaultValue”。
所以总结一下,我需要我的批处理代码来执行以下操作:
For(i = 0; i < number of row of file2.csv; i++):
If ColumnA.value(i) isn't in File1.csv.ColumnA
Add next row to File1.csv: ColumnA = File2.csv.ColumnA.Value(i)
ColumnB = 'DefaultValue'
ColumnC = 'DefaultValue'
ColumnD = 'DefaultValue'
您知道如何使用批处理文件来执行此操作吗?
谢谢
解决方案
这不是免费的写代码服务;你应该展示你自己解决问题的尝试......无论如何,这是一个非常简单的解决方案:
@echo off
setlocal
rem Load ColumnA from File1 into CA array
for /F %%a in (File1.csv) do set "CA[%%a]=1"
rem Process File2
(for /F %%a in (File2.csv) do (
if not defined CA[%%a] echo %%a DefaultValueB DefaultValueC DefaultValueD
)) >> File1.csv
推荐阅读
- python - python bottle boddle - patch(... side-effect="Exception) 不起作用。我做错了什么
- c - C将txt文件中的数据加载到链表中
- wordpress - 正则表达式匹配没有查询字符串的 URL
- r - 多重卡方检验
- c# - 如何对锯齿状数组进行排序
- typescript - 如何使控制台日志一起显示错误而不是单独显示?
- git - git log 在 git fetch 之后不跟踪更新(在 --no-checkout clone 中)
- excel - 添加新值时向下移动单元格中的值
- maven - Maven.I 可以在 IntelliJ 中运行我的 JUnit 测试,但 maven 只报告执行了 0 个测试
- java - 如何在 TextView 中显示带有参数的 HTML 字符串资源?