最后几天我在Windows Batch上使用comm做了很多事情来比较彼此的文本文件。所以,正常情况下我无能为力。在我的其他项目中,下面的代码工作正常但不是在实际情况下,我看不出任何理由。
好的,我对comm的了解是,需要对两个文件进行排序,以便为两个文件添加它,现在我尝试比较新文件>使用Archive和Output应该是all.txt
中 NOT 的行D:/filetype/core/sort.exe -b D:\filetype\test\all.txt -oD:\filetype\test\all.txt
D:/filetype/core/sort.exe -b D:\filetype\test\listfile_export_tmp2.txt -oD:\filetype\test\listfile_export_tmp2.txt
D:/filetype/core/comm.exe -2 -3 D:\filetype\test\listfile_export_tmp2.txt D:\filetype\test\all.txt > D:\filetype\test\output.txt
为了测试,我添加了我想要与我的all.txt进行比较的文本,因此输出应为零,因为这不是什么新鲜事。但结果是output.txt正是我在第一个文本文件中得到的。我手动检查了all.txt,我尝试比较的这些行在里面,我检查了那种排序与testfile和不同的字母一起正常工作。
所以这就是我的想法
我可以根据要求提供两个文件进行测试
答案 0 :(得分:0)
好的,我能够搞清楚。 Grep和comm将在比较时匹配空白行。因此,如果您只有一个小文本文件作为输入,而另一个空白行(在我的情况下更大),他可能会匹配所有空白行,因此您将再次看到您的输入。
删除我使用sed的空行
窗
sed.exe "/^\s*$/d"
Linux的
sed '/^\s*$/d'
现在jup再次正常运转。 (但不要忘记排序)