Sublime text удалить повторяющиеся строки
Let's say I had a text file with the following nine lines:
How can I use Sublime Text 2 to remove all four of the blank/empty lines, leaving only five lines?
19 Answers 19
Select the text
- Ctrl + H on PC, or
- Command + Alt + F on Mac or
- Click Find->Replace.
Make sure you have selected 'regular expression' by pressing:
- Alt + R on PC or
- Command + Alt + R on Mac or
- Click .* in the Find box.
Find what: ^\n or ^(\r|\n\r?)
Replace With: (nothing, leave in blank).
That works, thank you! Is there a way to bind that find/replace to a keyboard shortcut or somehow save it for quick access? I googled it and couldn't find anything
@Crates you don't need the ? , as a * also matches zero occurences and \s* will match the extra '\r' when for example editing windows text in a linux environment, so ^\s*$ does the trick.
The regexp in Hugo's answer is correct when there is no spaces in the line. In case if there are space regexp can be ^\s+$
That assumes that there IS whitespace. Also, it won't work for actually substituting the lines with nothing. Try ^[\s]*?[\n\r]+ instead. I've tested that, and it works.
There are also some ST2/ST3 Plugins for such tasks. I do like these two:
-
(also available via Package Control) (also available via Package Control)
The first one has two methods for removing empty/unnecessary lines. One of them called Delete Surplus Blank Lines which is cool. It removes only those lines that are followed by another empty line
A Find/Replace solution:
Replace with: //single space
Don't even know how this whole thing works, but I tried ^\s*$ and didn't work (leaving still some empty lines).
This instead ^\s* works for me
replace \n^\s*\n with \n
Make sure you select the area you want it to effect and then use the respective shortcut keys Windows: Ctrl+Alt+Backspace (Delete Blank Lines) Ctrl+Alt+Shift+Backspace (Delete Surplus Blank Lines) OSX: Ctrl+Alt+Delete (Delete Blank Lines) Ctrl+Alt+Shift+Delete (Delete Blank Lines) Linux: Ctrl+Alt+Backspace (Delete Blank Lines) Ctrl+Alt+Shift+Backspace (Delete Surplus Blank Lines)
Their is a more easily way to do that without regex. you have just to select the whole text. then go to: Edit--> Permute Lines --> Unique.
That's all. and all blank lines will be deleted.
This will delete ALL non-unique lines. Not just blanks. So, say you have HTML with a lot of lines being a single closing
This may not exact match the origin question, but this is the only native and easiest solution when a) You're sure there are no other duplicated lines. b) You're not fan of regexp.
вы можете легко найти повторяющиеся строки, запустив Sort Lines затем ищем это регулярное выражение, которое использует линейные граничные маркеры ^ и $ и обратная ссылка .
следуйте этому с помощью Find All, Copy, Paste в новой вкладке, Permute Lines / Unique и вы извлекли их.
к сожалению, у меня нет доступа к Sublime Text на данный момент, так что я не в состоянии проверить это, но я считаю, что что-то вроде следующего может работать для вас:
- сортировка строк через Edit -> Sort Lines команда
- установить Выделить Дубликаты плагин, и использовать его, чтобы выделить все повторяющиеся строки
- вырезать выделенные строки в буфер обмена и вставить их в новый файл
- строки, которые остаются в оригинале файл являются вашими Экстракт Уникального строки
- в новом файле выделите весь текст и удалите повторяющиеся строки через Edit -> Permute Lines -> Unique команда
- строки, которые остаются в новом файле, являются вашими Экстракт Дубликаты строки
слегка модифицированный ответ @MJH выше, чтобы получить дублированные строки с Sublime 3 и DiffMerge, без использования Highlight Duplicates плагин.
- сортировка строк через Sublime 3 Edit -> Sort Lines команда
- сохранить исходный файл как sorted_orig.txt
- выделите весь текст и удалите повторяющиеся строки через Sublime 3 Edit -> Permute Lines -> Unique команда
- сохранить измененный файл как no_dup_sorted.txt
- запустить дифф с помощью DiffMerge с sorted_orig.txt и no_dup_sorted.txt файлы.
- использовать Export -> File Diffs в DiffMerge чтобы получить список дубликатов в буфер обмена или сохранить в другой файл.
была такая же проблема (покажите мне простофили). не нашел простого ответа на основе Sublime и вернулся к использованию команд Unix (в моем файле были данные, которые я хотел найти дубликаты в Столбцах 11-56):
В предыдущей статье по Sublime Text 2 мы рассмотрели настройки после установки программы.
Здесь же я буду описывать шпаргалку для себя и вас по данной программе, чтобы не забывать, что и как делать.
Горячие клавиши
Ctrl + Ё ( Ctrl + ` ) — Открытие/закрытие консоли.
Ctrl + P — Открытие/закрытие панели перехода и поиска GoAnything .
Ctrl + S — Сохранить файл.
Ctrl + F — Открыть панель поиска.
Esc — Закрыть панель поиска.
Ctrl + Shift + F — Открыть расширенную панель поиска и замены.
Ctrl + F9 — Сортировка строк с учетом регистра.
F9 — Сортировка строк.
Ctrl + J — Объединение выделенных строк в одну.
Ctrl + Shift + D — Дублирование выделенного кода.
F6 — Включение/выключение режима проверки орфографии.
Alt + O ( Alt + Щ ) — Если в Sublime открыты .cpp и .h файлы, соответствующие друг другу, то эта комбинация клавиш переключит с .cpp на .h и наоборот.
Ctrl + F2 — Добавить к строке отметку.
F2 — Переход к следующей отмеченной строке.
Shift + F2 — Переход к предыдущей отмеченной строке.
Ctrl + / — Закомментировать/раскомментировать код.
Ctrl + K , а потом Ctrl + U — Поменять регистр букв на верхний.
Ctrl + K , а потом Ctrl + l — Поменять регистр букв на нижний.
Ctrl + M — Перейти к соответствующей скобке (закрывающейся или открывающейся).
Плагин Clipboard History
Ctrl + Alt + V — Окно истории буфера обмена.
Ctrl + Shift + V — Вставляет предпоследний кусок в буфере обмена.
Некоторые функции в меню
File → Save with Encoding → … — Перекодирование файла.
File → Reopen with Encoding → … — Открыть файл в другой кодировке.
Edit → Permute Lines → Unique — Удалить повторяющиеся строки.
Edit → Permute Lines → Reverse — Обратить порядок строк.
Edit → Permute Lines → Shuffle — Перемешать строки в случайном порядке.
View → Layout → Columns: 2 — Разделить окна на две части (там вы найдете и другие способы разделения окна).
View → Syntax → … — Выбор подсветки синтаксиса.
Goto → Jump to Matching Bracket — Перейти к соответствующей скобке (закрывающейся или открывающейся).
Особые выделения
Если нажать на правую кнопку мыши и клавишу Shift , можно проводить вертикальное выделение текста:
Если нажать клавишу Ctrl , то можно выделить сразу несколько текстовых блоков (Множественное выделение). При этом, если не снимать выделение, то, когда начнете писать, то текст будет вводиться во всех выделенных местах:
Работа с панелью перехода и поиска GoAnything Ctrl + P
1.txt — Набираете название файла, и вы перейдете к нему. Особенно важно в режиме работы Project .
:10 — Переходите к 10 строке.
@func — Переходите к функции, что содержит func .
@fc — Также переходите к функции func .
C:\Users\[your username]\AppData\Roaming\Sublime Text 2 — в Windows 7 находятся все установленные плагины, настройки и так далее.
%appdata%/Sublime Text 2 — аналогичный путь.
Preferences → Browse Packages — аналогичный путь.
%appdata%/Sublime Text 2/Packages — папка с плагинами.
Плагины
Можно установить двумя способами:
- Распаковать архив с плагином в папку Packages с плагинами, что находится %appdata%/Sublime Text 2/Packages .
- Через Package Control :
Набираем Install Package и производим установку плагина.
Работа с проектами
Если вы работаете с каким-то проектом (сайт, программа и так далее), то вы работаете обычно со множеством файлов в одной папке с подпапками. Лучше в этом случае работать с функцией проекта Вид → Проект → Панель проекта 1 .
- Sublime Text 2
- Текстовой редактор
- FAQ
В предыдущей статье по Sublime Text 2 мы рассмотрели настройки после установки программы.
В предыдущей статье по Sublime Text 2 мы рассмотрели настройки после установки программы.
Harrix
Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.
Один из моих любимых текстовых редакторов. В статье будут описаны всякие такие вещи, которые стоит запомнить при работе с ним. Сортировка чисел, клавиатурные сокращения и так далее.
Горячие клавиши
Ctrl + S — Сохранить файл.
CTRL + D — Дублирование выделенного кода.
Ctrl + F2 — Ставим отметку у строки.
F2 — Переход к следующей отмеченной строке.
Shift + F2 — Переход к предыдущей отмеченной строке.
Ctrl + J — Объединение выделенных строк в одну.
Ctrl + B — Перейти к соответствующей скобке (закрывающейся или открывающейся).
CTRL + Space — Автодополнение кода:
Некоторые функции в меню
Кодировки → Преобразовать в … — Перекодирование файла.
Кодировки → Кодировать в … — Открыть файл в другой кодировке.
Клик правой кнопки мыши → ПРОПИСНЫЕ — Поменять регистр букв на верхний.
Клик правой кнопки мыши → строчные — Поменять регистр букв на нижний.
Правка → Панель истории файлов — История буфера обмена (Clipboard History):
Клик правой кнопки мыши → Вкл./Выкл. Комментарий строки — Закомментировать код (раскомментировать аналогично).
Клик правой кнопки мыши → Закомментировать выделенное — Закомментировать код (раскомментировать автоматически нельзя).
Клик правой кнопки мыши → ПРОПИСНЫЕ — Поменять регистр букв на большие буквы.
Клик правой кнопки мыши → строчные — Поменять регистр букв на маленькие буквы.
Вид → Операции с документом → Переместить в другое окно — Разделить окно на две части.
Синтаксис → … — Выбор подсветки синтаксиса.
C:\Program Files (x86)\Notepad++ — в Windows 7 находятся все установленные плагины, настройки и так далее.
C:\Program Files (x86)\Notepad++\plugins — папка с плагинами.
%appdata%\Notepad++ — папка с еще файлами Notepad++.
Update 2018. Сейчас есть x64 версия Notepad++, но я до сих пор рекомендую ставить 32-битную версию, так как много плагинов работает только под 32 бита.
Установка плагинов
Идем Плагины → Plugin Manager → Show Plugin Manager :
И там выбираем нужный нам плагин.
Update 2018. Данный менеджер плагинов был выпилен из Notepad++. Поэтому его нужно устанавливать отдельно. Статью, где описана установка менеджера и остальные плагины, можно найти тут: Плагины Notepad++.
Сортировка выделенных строк
Update 2018. В Notepad++ сейчас есть встроенные методы всевозможной сортировки:
Проверка орфографии
Автодополнение
Выше уже отмечалось, что клавиши CTRL + Space вызывают окно автодополнения. Но каждый раз мне нажимать на клавиши не удобно (привет любителям Vim). Было бы проще, чтобы подсказки возникали сами. Это делается так: Опции → Настройки → Автозавершение . Отметьте нужные вам галочки:
Update 2018. Сейчас данные настройки по умолчанию включены.
Особые выделения
Одной из «киллер-фич» в Sublime Text 2 считается мультивыделение. Оказывается, что оно есть и в Notepad++. Переходите в настройки программы Опции → Настройки → Правка и ставьте галочку:
И теперь, если нажать клавишу Ctrl , то можно выделить сразу несколько текстовых блоков (множественное выделение). При этом, если не снимать выделение, то, когда начнете писать, то текст будет вводиться во всех выделенных местах:
А при зажатом Alt можно делать вертикальное выделение:
Миникарта
Одной из главной «киллер-фич» в Sublime Text 2 считается миникарта справа, которую можно использовать как бегунок. Оказывается, что оно есть и в Notepad++.
Идите Вид → Карта документа :
Правда она не такая удобная, как в Sublime.
Работа с проектами
Если вы работаете с каким-то проектом (сайт, программа и так далее), то вы работаете обычно со множеством файлов в одной папке с подпапками.
Update 2018. Ниже описан способ, который позволит работать с несколькими папками в одном проекте, но с одной папкой сейчас проще всего работать через Файл → Открыть папку как Проект :
Лучше в этом случае работать с функцией проекта Вид → Проект (панель) → Панель проекта 1 :
Щелкаете правой кнопкой мыши по пункту рабочая область и выбираете пункт Добавить Новый проект и как-то его называете:
Теперь правая кнопка мыши по проекту и пункт меню Добавить файлы из директории :
Теперь у нас есть дерево наших файлов, в котором удобно ориентироваться и редактировать. Причем сюда занесены не только тестовые файлы, но и все остальные. Разумеется, проект можно сохранять, добавлять файлы по отдельности. В общем удобная вещь:
Синхронизация вертикальной прокрутки
Еще одна важная для меня функция. Когда имеется два файла одного типа часто требуется просмотреть их синхронно. В Notepad++ все реализовано:
Выделение определенного текста
В Notepad++ можно выделить конкретный текст (как будто маркером провели):
Список открытых файлов
Опции → Основные → Панель Списка документов и там нажмите галочку на Отображать :
Как удалить повторяющиеся строки
Как удалить пустые строки в Notepad++ с помощью горячих клавиш
Как удалить каждую вторую строку в Notepad++
Знаки табуляции
Рекомендую использовать вместо знака табуляции 4 или 2 пробела:
Статья обновлена 2018
- Notepad++
- Текстовой редактор
- FAQ
Один из моих любимых текстовых редакторов. В статье будут описаны всякие такие вещи, которые стоит запомнить при работе с ним. Сортировка чисел, клавиатурные сокращения и так далее.
Один из моих любимых текстовых редакторов. В статье будут описаны всякие такие вещи, которые стоит запомнить при работе с ним. Сортировка чисел, клавиатурные сокращения и так далее.
Harrix
Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.
I have a 900mb log file which I can open in SublimeText 3. This file is bloated with lines similar to the following.
10/08/2014 23:45:31:828,Information. ExportManager: ,No records to send and/or not connected
How can I filter out all the lines which contain No records to send and/or not connected
10 Answers 10
You can do a regular expression search-and-replace:
Click Find > Replace.
Ensure that the Regular Expression button is pressed.
For the Find What field, put:
Leave the Replace With field empty.
Click Replace All
The full stop/period at the end is important, without it, it won't work. Alternatively, you could use this: ^.*No records to send and/or not connected\S.*$
This solution is the only feasible one if you're operating on a large file. My machine got stuck for several minutes when I did Ctrl+Shift+K with 200,000 lines selected.
For people that don't want to write a regex - you can just select the search string, hit ctrl+cmd+g or pick "Quick Find All" from the menu, which will get you selections for each matching string; from there Home will move every selection cursor to the start of the line, shift+End will select every matching line, and del, del will delete all of them.
Multiple cursor editing is fun!
This is a very useful more generalized tip. My objective was to delete all lines containing a string. I ended up selecting one instance of it then used "QuickFind" with the shortcut Ctrl+Cmd+G as Leonid suggests for selecting all those strings. After this I could go directly to "Delete Line" Ctrl-Shift-K and surgically all the lines with this string were removed in an instant. Sublime Text really is the best text editor I've ever used.
i could not get the regex to work so I used Alt-F3 approach from this answer:
- Select string of interest
- Hit Alt + F3 to go into multi-cursor mode on all occurrences ( Ctrl + CMD + G on Mac OS X)
- Hit Ctrl + L [see comments] ( Cmd + L on Mac)
- Copy-paste selection to another buffer
- Del
Two things: (1) You can link to an individual answer like this (2) You should summarize the other answer here (and specialize it to answer this question as appropriate).
You can replace steps 3 and 4 with CTRL + L , which expands selections to whole lines, including line break.
For those like me cursed by a MAC key scheme : Ctrl+Cmd+G to for multi-cursor on all occurences, Cmd+L to expand lines, and the usual copy/paste
Читайте также: