我需要一个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
答案 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