【发布时间】:2017-10-11 03:40:16
【问题描述】:
在 A: 和 B: 这两个目录中各有 1 个或多个 文本文件。目的是打印一个单个文本文件,其中包含所有行仅出现在A:中。
(每个文本文件最多可包含 200 万行。如果 A: 有 2 个或多个唯一行 [即,仅在 A:,不在 B:] 中彼此相同,则只有其中之一行需要在 unique.txt 输出中列出。顺序列表 [sort] 不重要。)
感谢Lieven Keersmaekers 下面的脚本(干净且快速)。然而,我似乎陷入了在 unique.txt 文件中被截断的行(在字符 120 处;或包装),而不是像它们一样打印 整个 唯一行 exactly存在于 A: 中。
compare -r $(gc C:\a\*.txt | sort -u) -d $(gc C:\b\*.txt | sort -u) | ? {$_.SideIndicator -eq '<='} | select inputobject | Out-File unique.txt
我试图用这些来获得完整的、展开的行,但没有成功:
Format-Table -Wrap -AutoSize |
我做错了什么? Windows cmd line 或 PowerShell 都可以。
【问题讨论】:
-
以下内容可能会让您入门:
compare -r $(gc C:\temp\testfile1.txt | sort -u) -d $(gc C:\temp\testfile2.txt | sort -u) | ? {$_.SideIndicator -eq '<='} | select inputobject -
C:\a>compare -r $(gc C:\a\1.txt | sort -u) -d $(gc C:\b\1.txt | sort -u) | ? {$_.SideIndicator -eq '<='} | select inputobject -msg:`系统找不到指定的文件`windows cmd line。 -
抱歉,Powershell。
-
试试
compare -r $(gc C:\a\*.txt | sort -u) -d $(gc C:\b\*.txt | sort -u) | ? {$_.SideIndicator -eq '<='} | select -expand inputobject | Out-File unique.txt -
完成免责声明 ;)
标签: windows powershell text command-line compare