Есть ли способ извлечь дубликаты строк в Sublime Text?
Мне нужно выполнить 2 операции в Sublime Text: извлечь уникальные строки и извлечь дубликаты строк. Например для ввода
a
b
a
Извлечение дубликатов должно привести к:
a
и Извлечение уникального должно привести к:
b
Есть ли встроенная операция или плагин для этого?
4 ответа
Вы можете легко найти повторяющиеся строки, запустив Sort Lines
затем поиск этого регулярного выражения, который использует маркеры границы строки ^
а также $
и обратная ссылка \1
,
^(.+)$\n^\1$
Следуйте за этим с помощью Find All, Copy, Paste в новой вкладке, Permute Lines | Уникальный и вы их извлекли.
К сожалению, в настоящее время у меня нет доступа к Sublime Text, поэтому я не могу проверить это, но я верю, что что-то вроде следующего может работать для вас:
- Сортировка строк через
Edit -> Sort Lines
команда - Установите плагин https://github.com/qur2/HighlightDuplicates и используйте его, чтобы выделить все дублирующиеся строки
- Вырежьте выделенные строки в буфер обмена и вставьте их в новый файл
- Строки, которые остаются в исходном файле, являются вашими линиями Extract Unique.
- В новом файле выделите весь текст и удалите дубликаты строк с помощью
Edit -> Permute Lines -> Unique
команда - Строки, которые остаются в новом файле, являются вашими строками извлечения дубликатов.
Я не совсем уверен, что шаг #1 действительно необходим, но я включил его на всякий случай.
Я обнаружил, что самый простой способ сделать это с помощью Sublime Text - просто отсортировать строки (f5 на Mac), переставить строки> уникальными, а затем просмотреть разницу с помощью git.
У меня была та же проблема (покажите мне дуплексы) ... не нашел простого ответа на основе Sublime и вернулся к использованию команд Unix (в моем файле были данные, которые я хотел найти в столбцах 11-56):
cut -c 11-56 myfile.dat | sort | uniq -d
Размещено здесь в качестве FYI для других.
Слегка измененный ответ @MJH выше, чтобы получить дублированные строки с Sublime 3 и DiffMerge, без использования Highlight Duplicates
плагин.
- Сортировка строк с помощью Sublime 3
Edit -> Sort Lines
команда - Сохранить оригинальный файл как sorted_orig.txt
- Выделите весь текст и удалите дубликаты строк с помощью Sublime 3
Edit -> Permute Lines -> Unique
команда - Сохранить измененный файл как no_dup_sorted.txt
- Запустите diff с помощью инструмента DiffMerge с файлами sorted_orig.txt и no_dup_sorted.txt.
- использование
Export -> File Diffs
в DiffMerge, чтобы получить список дубликатов в буфере обмена или сохранить в другой файл.