2

要删除以空格开头的 txt 文件的所有行(包括空行),我写

    findstr /v /b /c:" " <%1>result.out.

实际上,如果每行的开头和空行都不再有空格,那么 result.out 文件将为我提供答案。

我所做的仍然使行标题为空,它还保留了我想放弃的空白行。最后,result.out 输出必须有连续的行,每行的开头总是包含一个文本。

请有人可以告诉我这是什么问题以及如何解决?谢谢。

4

2 回答 2

4

如果要将Tab字符包含在要检查的空白中,则必须使用批处理脚本。如果您尝试将字符粘贴到控制台中,cmd控制台只会向您发出恼人的声音。但是在文件中解释没有问题。TabTabcmdTab.bat

将其放入批处理文件并运行它,将Space和替换Tab为实际的空格和制表符。

findstr /r /v /c:"^[SpaceTab]" /c:"^$" "%~1" >result.out

第一个/c:检查行首的空格。第二个/c:检查空行。两者都省略了/v开关。

于 2013-04-17T13:59:13.620 回答
0
@ECHO OFF
SETLOCAL
CALL CMD /c EXIT 26
(
FOR /f "eol=%=ExitCodeAscii% delims=" %%i IN ('findstr /v /b /c:" " ^<%1') DO ECHO %%i
)>result.out

应该删除空行。

FOR读取 FINDSTR 删除所有带有尾随空格的行之后出现的文件的每一行。任何空的谎言都被丢弃,整行都应用于 %%i,因为没有分隔符。

通过将行尾字符设置为 control-Z,实际上也没有行尾,因此所有非空行都被ECHO编辑

于 2013-04-17T14:15:08.233 回答