У меня есть каталог с тысячами текстовых файлов, каждый файл содержит тысячи строк. Некоторые файлы содержат уникальные записи, некоторые содержат дубликаты и т. Д. Каков наилучший способ записи одного файла, содержащего только уникальные строки, из каждого файла txt в указанном DIR. Для ясности я хочу прочитать каждую строку в каждом текстовом файле в каталоге и написать один файл, содержащий уникальные строки.
Ps Сервер работает Windows Сервер
mytext1. txt
Apple orange Banana eggs
Apple orange Banana eggs
Apple dolphins leeks potatos
mytext2.txt
Apple orange Banana eggs
Apple orange Banana eggs
Apple dolphins leeks potatos
mytext3.txt
Apple orange Banana eggs
Apple orange Banana eggs
Apple dolphins leeks potatos
Glasses Dolphins oranges pears
anothertext.1
pink headphones glasses oranges
Apple orange toast security
anothertext.2
pink headphones glasses oranges
Apple orange toast security
anothertext.3
laundry goat elephant mars
И я хотел бы, чтобы конечный текстовый результат выглядел следующим образом
results.txt
Apple orange Banana eggs
Apple dolphins leeks potatos
Glasses Dolphins oranges pears
pink headphones glasses oranges
Apple orange toast security
laundry goat elephant mars
Я не хочу, чтобы результаты "сортировались" по сути. Я хочу команду, которая выглядит как
gc C:\Uploads\*.txt | > C:\Clean\Clean.txt
Очевидно, что приведенная выше команда не будет работать, результирующий текстовый файл будет содержать несколько дубликатов. Еще раз спасибо.
Я думал сначала создать объединенный файл, а затем уникально все содержимое, т. Е.
get-content C:\Uploads\*.txt | out-file C:\Clean\output.txt
get-content C:\Clean\output.txt | get-unique > C:\Clean\outputclean.txt
"outputclean.txt" по некоторым причинам содержит повторяющиеся строки.
РЕШЕНО В случае, если кто-нибудь столкнется с этим в будущем, Это записывает объединенный мастер-файл из всех текстовых файлов в C: \ Uploads * .txt и записывает его в C: \ Clean \ output.txt затем он создает ha sh и использует -eq на конвейере, все в powershell, этот метод следует использовать, если порядок важен, как я хотел, поэтому все записи останутся в порядке и не будут отсортированы.
get-content C:\Uploads\*.txt | out-file C:\Clean\output.txt
$hash = @{}
gc C:\Clean\output.txt | % {if ($hash.$_ -eq $null) {$_};$hash.$_ = 1} > C:\Clean\Clean.txt