Мне нужно удалить дубликаты строк из текстового файла, это просто в Linux, используя
cat file.txt |sort | uniq
когда file.txt содержит
aaa bbb aaa ccc
Будет выводить
aaa bbb ccc
Есть ли аналог Windows? или как это сделать в Windows?
В Unix вы можете написать это как `sort -u file.txt`
jfs 6 лет назад
6
Существует также WSL, который работает довольно хорошо, насколько этот материал идет
user2813274 6 лет назад
1
Может быть, вы хотите установить что-то в качестве решения, если у вас больше нет вопросов?
davidbaumann 6 лет назад
0
2 ответа на вопрос
18
Yu Jiaao
Sort-ObjectКомандлет в PowerShell поддерживает -Uniqueпереключатель, который делает то же самое, как uniq:
Get-Content file.txt | Sort-Object -unique
Конечно, благодаря наличию псевдонимов в PowerShell вы также можете написать:
type file.txt | sort -unique
Кроме того, /uniqueв sort.exeWindows 10 есть недокументированный переключатель, поэтому он должен работать в командной строке:
type file.txt | sort /unique
Я не думаю, что команда Windows (`sort.exe`) поддерживает это; это похоже на особенность встроенной оболочки PowerShell.
Ben Voigt 6 лет назад
1
введите unsorted.txt | sort -unique> sorted.txt Это действительно работает под win10 и записывает уникальные значения в новый файл
Lixas 6 лет назад
0
@BenVoigt на удивление, `тип file.txt | sort / unique` работает с _undocumented_ switch `/ unique` утилиты` sort.exe` (по крайней мере, в Windows 10). С другой стороны, вы правы, предоставив пример PowerShell `Get-Content file.txt | Sort-Object-unique`, по сути.
JosefZ 6 лет назад
5
@Lixas `тип unsorted.txt | sort -unique` возвращает `-uniqueСистема не может найти указанный файл` с уровнем ошибки` 1`, если запускается из открытого приглашения `cmd` под Windows 10!
JosefZ 6 лет назад
0
Ошибки `sort / unique` с` Invalid switch` в Windows 7 Enterprise.
Don Cruickshank 6 лет назад
1
5
Journeyman Geek
Есть порты uniq, которые работают идентично версиям gnu / coreutils. Я лично использую вариант от GOW, но git для Windows имеет значительно более новую версию . Cygwin не требуется, хотя для последнего вам нужно искать в / usr / bin
Поскольку эти пакеты также содержат cat, sort и uniq - ваш рабочий процесс должен быть в основном одинаковым и cat file.txt |sort | uniqработать в основном одинаково