如何使用dos批处理文件从csv文件中删除只有一条记录的行

时间:2013-04-03 13:48:40

标签: csv batch-file line dos comma

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

my_file.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

2 个答案:

答案 0 :(得分:1)

在一行中:

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

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

答案 1 :(得分: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