要删除以空格开头的 txt 文件的所有行(包括空行),我写
findstr /v /b /c:" " <%1>result.out.
实际上,如果每行的开头和空行都不再有空格,那么 result.out 文件将为我提供答案。
我所做的仍然使行标题为空,它还保留了我想放弃的空白行。最后,result.out 输出必须有连续的行,每行的开头总是包含一个文本。
请有人可以告诉我这是什么问题以及如何解决?谢谢。
要删除以空格开头的 txt 文件的所有行(包括空行),我写
findstr /v /b /c:" " <%1>result.out.
实际上,如果每行的开头和空行都不再有空格,那么 result.out 文件将为我提供答案。
我所做的仍然使行标题为空,它还保留了我想放弃的空白行。最后,result.out 输出必须有连续的行,每行的开头总是包含一个文本。
请有人可以告诉我这是什么问题以及如何解决?谢谢。
如果要将Tab字符包含在要检查的空白中,则必须使用批处理脚本。如果您尝试将字符粘贴到控制台中,cmd
控制台只会向您发出恼人的声音。但是在文件中解释没有问题。TabTabcmd
Tab.bat
将其放入批处理文件并运行它,将Space和替换Tab为实际的空格和制表符。
findstr /r /v /c:"^[
SpaceTab]" /c:"^$" "%~1" >result.out
第一个/c:
检查行首的空格。第二个/c:
检查空行。两者都省略了/v
开关。
@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
编辑