两个目录中的每一个都有一个或多个文本文件,A:和B :. 目的是打印一个包含A:中只存在的所有行的文本文件。
(每个文本文件最多可以包含2百万行,如果A:有两个或更多的唯一行(即只在A:而不是在B:中)彼此相同,那么只有其中一行需要被列在unique.txt输出中,order [sort]的列表并不重要。)
感谢列文Keersmaekers下面的脚本(干净和快速)。 然而,我似乎在unique.txt文件中被截断(在字符120;或包装),而不是完全按照A:中的方式打印整个唯一行。
compare -r $(gc C:a*.txt | sort -u) -d $(gc C:b*.txt | sort -u) | ? {$_.SIDeIndicator -eq '<='} | select @R_403_5983@object | Out-file unique.txt
我试图与这些玩,以获得完整的,未包装的线,但没有成功:
如何删除同一程序的gui和命令行界面之间的语言环境差异?
当传递的参数有引号时使用DOS启动命令
学习控制台命令的重要性
我怎样才能通过CMD最大化一个特定的窗口?(窗口)
在Java中使用cmd复制文件时出现问题
Format-table -Wrap -autoSize |
我做错了什么? windows cmd行或PowerShell将工作。
这个gcc编译器命令中的-z选项是什么?
如何从PHP中的控制台中删除文本?
使用man命令描述我的文件
如何从windows命令行运行python文件(.py)而不必先键入python?
在bash脚本中,在脚本退出后的提示符上打印命令(作为build议)
以下可能会让你开始。
短版本(使用别名)
compare -r $(gc C:a*.txt | sort -u) -d $(gc C:b*.txt | sort -u) | ? {$_.SIDeIndicator -eq '<='} | select -expand @R_403_5983@object | Out-file unique.txt
长版
Compare-Object -ReferenceObject $(Get-Content C:a*.txt | sort-object -Unique) -DifferenceObject $(Get-Content C:b*.txt | sort-object -Unique) | Where-Object {$PSItem.SIDeIndicator -eq '<='} | Select-Object -ExpandProperty @R_403_5983@object | Out-file unique.txt
请注意,我不能动摇与<=的比较的能力,应该更好地处理,但我不能轻易找到一种方法。
使用sort -u , bash和combine :
combine <(sort -ua/* ) not <(sort -ub/*)
上面假定不需要重复行,并且windows文件系统安装在linux机器上,或者可以从linux机器访问。
请注意, combine不需要排序数据,它可以以任意顺序显示来自A:*行,并返回未排序的输出,例如:
combine <(cat a/*) not <(cat b/*)
…但是这失去了不显示重复行的属性,如果A:*包含比B:*更多的给定行的重复项。
应该是有点性能的最天真的解决方案将是类似的
$inB = [system.collections.generic.HashSet[string]]::new([string[]](Get-Content B* | select -unique)) Get-Content A* | Where-Object { ! $inB.Contains($_) } | Out-file onlyinA.txt
但是,您将支付B中所有文件的所有唯一行。 唯一的解决办法就是过滤A中的行,然后删除B中更多的行。
总结以上是内存溢出为你收集整理的从两组文本文件中提取独特的行全部内容,希望文章能够帮你解决从两组文本文件中提取独特的行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)