【问题标题】:batch file code to remove comma from .csv file从 .csv 文件中删除逗号的批处理文件代码
【发布时间】:2015-04-06 12:08:08
【问题描述】:
我需要一个批处理文件代码来从.csv 文件的第一列中删除逗号,并从.csv 文件的第一行中删除空格。
感谢您的帮助
我的.csv 文件中有以下数据:
Column 1 Column 2
"LAMAR,JOY" indian
"Samar,sinha" American
我必须将 , 替换为 - 仅在第 1 列中。
我该怎么做??
【问题讨论】:
标签:
batch-file
space
trim
comma
【解决方案1】:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "col1="
(
FOR /f "delims=" %%c IN (q29471006.txt) DO (
FOR /f "tokens=1delims= " %%a IN ("%%c") DO (
IF DEFINED col1 (
SET "col1=%%a"
SET "col1=!col1:,=-!"
SET "line=%%c"
SET "line=!line:* =!"
ECHO(!col1! !line!
) ELSE (
SET "col1=%%c"
SET "col1=!col1: =!"
ECHO(!col1!
)
)
)
)>u:\newfile.txt
由于您没有显示您期望的输出,我们只能猜测。
我使用了一个名为 q29471006.txt 的文件,其中包含我的测试数据。
这个例程的输出(u:\newfile.txt)是
Column1Column2
"LAMAR-JOY" indian
"Samar-sinha" American
这对我来说意义不大,但这已从第一行中删除了空格,其余部分在第一列中用 - 替换了 ommas。
文件被读入%%c。因为col1 被初始化为empty,所以第一行没有定义col1,所以整行被分配给col1,空格被删除,结果echoed。
由于现在定义了col1,剩余的行在行被标记在分隔列的空间后处理(它是固定列格式,而不是 csv。)%%a 获取第一列并分配给col1 然后将每个 , 替换为 -。从%%c 开始的整行被分配给line,然后从line 中删除直到并包括第一个空格的字符。因此所需的输出是col1 的内容+ 被删除的空格+ 剩余部分line 中的行。