我有几个文本文件(a.txt
和b.txt
),其中包含一堆 URL,每个 URL 占一行。将这些文件视为黑名单。我想清理我的c.txt
文件,清除其中的任何字符串a.txt
和b.txt
。我的方法是重命名c.txt
为c_old.txt
,然后通过 grep 出和c.txt
中的字符串来构建一个新的。a.txt
b.txt
type c_old.txt | grep -f a.txt -v | grep -f b.txt -v > c.txt
很长一段时间以来,我的系统似乎运行良好。然而,最近,我几乎丢失了 中的所有内容,并且尽管或c.txt
中没有出现新添加的内容,但这些内容也被删除了。我不知道为什么。a.txt
b.txt
PS 我使用的是 Windows 7,因此 grep 是单独安装的。如果有不需要我安装其他 Linux 工具的解决方案,我将不胜感激。
更新:我发现批处理文件中有一个错误。我ren c.txt c_old.txt
无意中使用了 ,ren
如果目标文件存在,则拒绝覆盖它。因此,type c_old.txt | ...
总是使用相同的数据。这解释了为什么 中的新添加内容c.txt
被删除,但无法解释为什么 中的许多条目都c.txt
丢失了。
答案1
嗯,我实际上没有太多数据可以继续,因为自从我最初提出这个问题以来,a.txt 和 b.txt 并没有增加大量新内容,但自从解决这个ren
问题(用 替换它move /Y
)以来,事情一直很顺利。
所以,事情进展得更好了。我仍然不确定最初的数据丢失是如何发生的,但可能是我在编辑脚本时搞砸了,并且没有在安全的环境中进行测试运行。