我有两个CSV文件需要合并才能正确读取。我遇到的一个问题是在合并之前/之后将协调数据匹配在一起。
我需要能够匹配数据,以便对图表进行排序。这很难解释,但我已经提供了一个例子来帮助解释我的目标。
在CSV文件中,我有几列我正在尝试合并,例如第一个CSV文件看起来如下所示。
"ID","Ver","P/N"
"2000-00","3","abc"
"2001-00","1","acd"
"2001-01","5","acd"
"3111-00","2","xyz"
我的第二个CSV文件如下所示:
"Number","Name"
"1000-00_efg_Ver-1","efg"
"2000-00_abc_Ver-3","abc"
"2001-00_acd_Ver-1","acd"
"3111-00_xyz_Ver-2","xyz"
"4290-01_lmn_Ver-2","lmn"
我希望能够运行脚本将CSV文件合并到一个类似于此的CSV文件中:
ID,Ver,P/N,Number,Name
2000-00,3,abc,2000-00_abc_Ver-3 /abc,abc
2001-00,1,acd,2001-00_acd_Ver-1 /acd,acd
3111-00,2,xyz,3111-00_xyz_Ver-2 /xyz,xyz
因此脚本(不必是批处理但是首选)只会合并匹配的列,并且会丢弃所有其他数据。
非常感谢任何有关如何解决此问题的帮助。
编辑:
在浏览网页之后,将数据导入数据库,运行查询然后将查询导出为CSV文件是否有意义?
这应该可行,但如果我这样做,我需要能够每天在特定时间远程运行命令。
答案 0 :(得分:0)
通常我希望看到您的一些编码工作,因为SO
不是代码编写服务
使用名为first.csv,second.csv和third.csv
此批次应该:
:: Q:\Test\2018\04\26\SO50049573.cmd
@Echo off
( Echo:ID,Ver,P/N,Number,Name
for /f "skip=1 tokens=1-3 delims=," %%A in (first.csv) do (
findstr "^\"%%~A_%%~C_Ver-%%~B\"" second.csv >nul 2>&1 && (
Echo:%%~A,%%~B,%%~C,%%~A_%%~C_Ver-%%~B /%%~C,%%~C
)
)
) >third.csv
示例输出
> type third.csv
ID,Ver,P/N,Number,Name
2000-00,3,abc,2000-00_abc_Ver-3 /abc,abc
2001-00,1,acd,2001-00_acd_Ver-1 /acd,acd
3111-00,2,xyz,3111-00_xyz_Ver-2 /xyz,xyz