如何通过批处理文件删除txt文件中的某些行?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (33)

我有一个生成的txt文件。这个文件有一些多余的行,需要删除。每一行需要移除,行中有两个字符串之一;“错误”或“引用”。这些标记可能出现在行的任何位置。我想删除这些行,同时保留所有其他行。

因此,如果txt文件如下所示:

Good Line of data
bad line of C:\Directory\ERROR\myFile.dll
Another good line of data
bad line: REFERENCE 
Good line

我希望这份文件最终会像这样结束:

Good Line of data
Another good line of data
Good line

提问于
用户回答回答于

使用以下方法:

type file.txt | findstr /v ERROR | findstr /v REFERENCE

这样做的优点是在Windows操作系统中使用标准工具,而不必查找和安装sed/awk/perl等。

请参阅以下:

C:\>type file.txt
Good Line of data
bad line of C:\Directory\ERROR\myFile.dll
Another good line of data
bad line: REFERENCE
Good line

C:\>type file.txt | findstr /v ERROR | findstr /v REFERENCE
Good Line of data
Another good line of data
Good line
用户回答回答于

可以使用findstr来完成相同解决方案。没有必要将多个命令连接在一起:

findstr /V "ERROR REFERENCE" infile.txt > outfile.txt

详细情况如下:

  • /v查找与搜索字符串不匹配的行(相同的Switch)
  • 如果搜索字符串在引号中,则使用每个单词(分隔符是空格)执行OR搜索。
  • findstr可以接受一个输入文件,您不需要使用“type”命令将文本提供给它
  • “>outfile.txt”将结果发送到文件outfile.txt,而将它们打印到控制台。(注意,如果文件存在,它将覆盖该文件。如果想追加“>>outfile.txt”,则使用“>>outfile.txt”。
  • 还可以考虑添加/i开关来执行不区分大小写的匹配。

扫码关注云+社区