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