首页 > 解决方案 > 通过批处理文件删除所有不包含“2020”的行

问题描述

我有一个生成的 txt 文件。该文件有一些不相关的行,需要排除。需要删除的每一行都不包含字符串“ 2020 ”。我想删除这些行,同时保留所有其他行。

所以txt文件是这样的:

aaa2020
aaa2019
aaa2018
aaa2017

变成这样:

aaa2020

我努力了

findstr /V "2019" infile.txt > outfile.txt

但是这变得效率低下,因为我需要对每个不正确的序列使用该命令:(2019,2018,2017...)

标签: batch-filecmd

解决方案


由于您的搜索模式没有特殊要求,您可能更喜欢实用程序。打开命令提示符窗口,键入help find,按该ENTER键并阅读其使用信息。

使用该信息,您可以使用:

@find "2020" < "infile.txt" > "outfile.txt"

或者为了绝对的鲁棒性:

@( ( "%__AppDir__%find.exe" "2020" ) 0< "X:\SomePathTo\infile.txt" ) 1> "Y:\SomeLocation\outfile.txt"

这应该可以在之间直接传输。


推荐阅读