从以空格开头的文件中删除行,包括空行

时间:2013-04-17 12:19:39

标签: batch-file space lines

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

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

的确,如果每行开头和空行都没有空格,result.out文件会得到答案。

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

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

2 个答案:

答案 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