我有一个文本文件(name.txt),格式如下:
aaaaaaaa 1245
bbbbbbbb,456
1.2.3.4 nnnnnnnn
cccccccc
另一个文本文件(cleanup.txt)包含我需要删除的名称:
aaaaaaaa
nnnnnnnn
如何根据cleanup.txt使用批处理文件删除name.txt中的某些行并创建新文件new_name.txt?
new_name.txt
bbbbbbbb,456
cccccccc
我现在正在做的是手动编辑批处理文件命令
type name.txt | findstr /v aaaaaaaa | findstr /v nnnnnnnn > new_name.txt
答案 0 :(得分:2)
你应该可以使用这样的基本命令:
FindStr/VG:"cleanup.txt" "name.txt">"new_name.txt"
答案 1 :(得分:0)
可以使用Compo已经发布的命令 FINDSTR 来完成此操作。
%SystemRoot%\System32\findstr.exe /V /G:"cleanup.txt" "name.txt" >"new_name.txt"
FINDSTR 在name.txt
的每一行中搜索cleanup.txt
中列出的任何字符串,并在正匹配时从name.txt
输出该行。
但输出是来自name.txt
NOT 的行,其中包含cleanup.txt
中列出的字符串,因为选项/V
会反转输出。
FINDSTR 的输出被重定向到文件new_name.txt
。
您可以添加切换/B
以仅写入文件new_name.txt
NOT ,其中包含cleanup.txt
开头时的任何字符串name.txt
中的一行。
打开命令提示符窗口并运行findstr /?
以获取有关 FINDSTR 选项的更多信息。
另请阅读Microsoft有关Using Command Redirection Operators。
的文章