我有一个包含以下内容的文本文件,其中包含一些我想从文本文件中删除的不需要的行。
1233,pqry,01/11/2011
2365698,abcd,2011/01/12
,defghj,11/12/2013
,,,
,,,
,,,
在上面的例子中,我们可以看到有多行以逗号分隔。我想通过批处理文件从我的文本文件中删除这些行。请帮助我
答案 0 :(得分:4)
ren myFile.txt myFile.txt.old
findstr /v /b /c:",,," myFile.txt.old > myFile.txt
将文件重命名为.old。在旧文件的行开头找到所有不包含“,,,”的行,并将其保存到原始文件中。
已编辑 - 以适应评论
如果要删除的行是那些只有逗号(我将包含空格)而没有其他值的行,那么这应该有效
for %%t in (c:\path\*.txt) do (
ren "%%~ft" "%%~nxt.old"
findstr /v /r /c:"^[, ]*$" "%%~ft.old" > "%%~ft"
)
对于路径中的每个文件,将文件重命名为*.old
,从此.old
文件中提取任何不包含(/v
)正则表达式(/r
)的行通过模式(/c
):“从行的开头(^
),然后是任何空格和逗号序列([, ]*
),直到到达行尾({{1 }})”。提取的行将发送到原始文件名。