У меня есть два файла простого текста, каждый файл содержит список строк, отсортированных в алфавитном порядке с одной строкой на строку. Я хочу к разности файлы и имею вывод всех строк, которые существуют только в file2.
Preferabbly я хочу, чтобы операция была возможна без любых сторонних инструментов, или с минимумом установок инструментов, который "нормален" для нахождения в среде командной строки окон, такой как GNU Diffutils, Powershell, и т.д. Вывод должен быть в текстовой форме (файл или как вывод командной строки).
Пример:
File 1 contents:
A
C
D
File 2 contents:
A
B
C
E
Result wanted:
B
E
В Windows PowerShell (порт для прямого обращения diff/grep комбинации grawity):
Compare-Object (Get-Content file1) (Get-Content file2) |
Where-Object { $_.SideIndicator -eq '=>' } |
Select-Object -ExpandProperty InputObject
Это может быть сокращено к:
diff (gc file1) (gc file2) | ?{$_.SideIndicator -eq '=>'} | %{$_.InputObject}
или перенесенный в функцию, если Вам нужен он чаще, чем однажды.