0

我需要一个 dos 批处理文件来删除多行 csv 文件的单个记录行。该文件采用正确的逗号 (,) 分隔变量格式。我一直在尝试使用“for /f”批处理命令,但没有成功。在下面的示例文件中,需要删除第二行和第四行。

我的文件.csv

string_1, string_2, string_3, string_4
string_1,
string_1, string_2, string_3, string_4, string_5, string_6, string_7, string_8
string_1,
string_1, string_2, string_3, string_4, string_5, string_6, string_7, string_8, string_9

4

2 回答 2

1

在一行中:

findstr /v /r ",$" myfile.csv >newfile.csv

它查找所有/v不包含/r正则表达式",$"的行 - 行尾的逗号。

于 2013-04-03T15:48:32.577 回答
0

你可以试试这个,它将新的 csv 保存在 new_file.csv 中:

@echo off &setlocal
for /f "delims=" %%i in (my_file.csv) do call:process "%%~i"
goto:eof

:process
set "line=%~1"
if "%line:*,=%"=="" goto:eof
setlocal enabledelayedexpansion
echo !line!>>new_file.csv
endlocal
goto:eof
于 2013-04-03T14:50:54.520 回答