Удаление дублирующихся строк в vi? - PullRequest
110 голосов
/ 09 декабря 2008

У меня есть текстовый файл, который содержит длинный список записей (по одному в каждой строке). Некоторые из них являются дубликатами, и я хотел бы знать, возможно ли (и если да, то как) удалить любые дубликаты. Я заинтересован в том, чтобы сделать это из vi / vim, если это возможно.

Ответы [ 13 ]

0 голосов
/ 30 апреля 2014
:%s/^\(.*\)\(\n\1\)\+$/\1/gec

или

:%s/^\(.*\)\(\n\1\)\+$/\1/ge

это мой ответ для вас, он может удалить несколько повторяющихся строк и только держи один не удаляй!

0 голосов
/ 09 декабря 2008

Относительно того, как Uniq может быть реализован в VimL, ​​найдите Uniq в плагине , который я поддерживаю . Вы увидите различные способы реализации, которые были указаны в списке рассылки Vim.

В противном случае, :sort u действительно путь.

0 голосов
/ 09 декабря 2008

Я бы использовал !}uniq, но это работает, только если нет пустых строк.

Для каждой строки в файле используйте: :1,$!uniq.

...