如何通过批处理文件从文本文件中删除不需要的行?

时间:2013-12-02 09:07:59

标签: batch-file dos

我有一个包含以下内容的文本文件,其中包含一些我想从文本文件中删除的不需要的行。

1233,pqry,01/11/2011
2365698,abcd,2011/01/12
,defghj,11/12/2013
,,,
,,,
,,,

在上面的例子中,我们可以看到有多行以逗号分隔。我想通过批处理文件从我的文本文件中删除这些行。请帮助我

1 个答案:

答案 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 }})”。提取的行将发送到原始文件名。