用一个逗号替换多次出现的逗号

詹姆士

我们使用的 HR 软件允许导入 CSV 文件,但是我们从第三方获得的转储未格式化为 CSV。

我已经编写了一个批处理文件以将其处理为 CSV 文件,但是转储文件的一部分可能有多个空格(每一行可能不同),因此当我用逗号替换空格时,我最终得到多个逗号。

如何更新我的批处理文件以将出现的两个或多个逗号更改为一个逗号?

原始文件:

096 Parisella, Onorato - Perm            030417 05:53
000                                      030417 06:44
127 Thomas, Vincent - Perm               030417 06:44
040 Ram, Gurdial - Perm                  030417 07:09
100 Smano, Petros - Perm                 030417 07:12
128 Machenbach, Werner - Perm            030417 07:13
147 Samanovic, Milan                     030417 07:14
047 Hopkins, Hugo - Perm                 030417 07:16

我当前的批处理文件:

@echo off 
setlocal EnableExtensions DisableDelayedExpansion

set "search= - Perm"
set "replace="

set "textFile=FINGERTEC RAW DATA*.txt"
set "rootDir=."

for %%j in ("%rootDir%\%textFile%") do (
    for /f "delims=" %%i in ('type "%%~j" ^& break ^> "%%~j"') do (
        set "line=%%i"
        setlocal EnableDelayedExpansion
        set "line=!line:%search%=%replace%!"
        >>"%%~j" echo(!line!
        endlocal
    )
)

set "search= "
set "replace=,"

set "textFile=FINGERTEC RAW DATA*.txt"
set "rootDir=."

for %%j in ("%rootDir%\%textFile%") do (
    for /f "delims=" %%i in ('type "%%~j" ^& break ^> "%%~j"') do (
        set "line=%%i"
        setlocal EnableDelayedExpansion
        set "line=!line:%search%=%replace%!"
        >>"%%~j" echo(!line!
        endlocal
    )
)

endlocal

电流输出:

096,Parisella,,Onorato,,,,,,,,,,,,030417,05:53
000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,030417,06:44
127,Thomas,,Vincent,,,,,,,,,,,,,,,030417,06:44
040,Ram,,Gurdial,,,,,,,,,,,,,,,,,,030417,07:09
100,Smano,,Petros,,,,,,,,,,,,,,,,,030417,07:12
128,Machenbach,,Werner,,,,,,,,,,,,030417,07:13
147,Samanovic,,Milan,,,,,,,,,,,,,,,,,,,,,030417,07:14
047,Hopkins,,Hugo,,,,,,,,,,,,,,,,,030417,07:16

请注意,我不能使用任何第三方工具。

行动

您尚未指定所需的输出。

这是我会这样做的方式:

@echo off
setlocal EnableExtensions DisableDelayedExpansion

set "search= - Perm"
set "replace="

set "textFile=test.txt"
set "rootDir=."

for %%j in ("%rootDir%\%textFile%") do (
    for /f "delims=" %%i in ('type "%%~j" ^& break ^> "%%~j"') do (
        set "line=%%i"
        set "output="
        setlocal EnableDelayedExpansion
        for %%a in (!line:%search%^=%replace%!) do set "output=!output!,%%a"
        >>"%%~j" echo(!output:~1!
        endlocal
    )
)

输出:

096,Parisella,Onorato,030417,05:53
000,030417,06:44
127,Thomas,Vincent,030417,06:44
040,Ram,Gurdial,030417,07:09
100,Smano,Petros,030417,07:12
128,Machenbach,Werner,030417,07:13
147,Samanovic,Milan,030417,07:14
047,Hopkins,Hugo,030417,07:16

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用“&”替换字符中的最后一个逗号

用空白值替换除第一个逗号外的所有逗号

用逗号分割 .csv 但跳过一个逗号(Powershell)

使用 XSLT 将 xml 转换为 csv 时,用一个值替换逗号“,”

用&替换字符串中最后一个单词之前的逗号

用逗号替换了 BR 标签,但在文本后添加了一个空格

用逗号替换每行中的第一个空格

用分号替换逗号后跟一个字符,同时保持相同的字符

如何用“和”替换最后一个逗号

在Unix中用一个逗号替换多个连续的空格

如何用逗号替换空格的最后一个实例

Oracle正则表达式替换多次出现的用逗号包围的字符串

在SetName()的逗号中出现一个奇怪的问题

用python删除字符串中的每个逗号,除了最后一个逗号

输出值用逗号分隔并排除最后一个逗号

用python中的任意一个替换多次出现的任何特殊字符

用Java中的不同字符替换一个字符的多次出现

用空格替换逗号

用另一个数据框中的值替换一个数据框中的逗号分隔值

替换Js中的函数以将句点和逗号替换为一个连字符

用逗号后跟空格替换逗号

Notepad ++替换一行中的第一个逗号

删除每行的最后一个逗号

太空中的一个逗号

如何去掉最后一个逗号?

替换出现的逗号或点

出现第一个逗号的句子/句子超过10个单词

在字符串中用“ and”替换逗号的最后一个实例

如何在SQL Server中将字符串中的最后一个逗号替换为“ and”