.Bat文件将列添加到CSV并拆分字符串

时间:2015-07-20 15:19:00

标签: csv batch-file

我在col D中有日期,这是日期和时间戳。我需要将它们分成两列,因此日期在D中,时间在E中,数据在文本的长度上是一致的。

对此的任何帮助都会很棒。

由于

前两行是......

vehicleid,name,uniqueid,datestamp,Time,lat,lon,gpsfix,speed,direction,reason,inp‌​uts,icon,gpsrhid,site,streetno,street,city,state,country,postalcode,speedkm,speed‌​type,driver,driverstatus,solidtype1,solidtype2,solidrate,solidspread,prewetrate,p‌​rewetspread,antiicerate,antiicespread,roadtemp,airtemp,pin0,pin1,pin2,pin3,pin4,p‌​in5,pin6,pin7,pin8,pin9,pin10,pin11,pin12
2038240,In-House_Garb_12-C844,,2015-06-03 0:00,9:52:43 AM,45.2342167,-75.7753139,F,68,SE,,1025,cubevan_bw-normal-se-nogsm,2489561661,,,‌​,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,

2 个答案:

答案 0 :(得分:0)

使用JREPL.BAT - a regular expression text processing utility非常简单。 JREPL.BAT是纯脚本(混合JScript /批处理),可以在XP之后的任何Windows机器上本机运行。

jrepl "(,\d{4}-\d\d-\d\d) (\d?\d:\d\d,)" "$1,$2" /f test.csv /o -

以上是全局搜索并替换所有日期/时间戳。可以编写更具体的正则表达式,仅修改第4列。

答案 1 :(得分:0)

您尚未指定可能对开发工作批处理文件有用的许多细节。例如,如果前三列可以 NOT 包含空格,并且"日期时间" D列中的部分总是用空格分隔,那么解决方案非常简单:

@echo off
(for /F "tokens=1*" %%a in (input.csv) do echo %%a,%%b) > output.csv
REM move /Y output.csv input.csv